-
Notifications
You must be signed in to change notification settings - Fork 37
/
attributes.d
77 lines (61 loc) · 1.48 KB
/
attributes.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
module tests.pass.attributes;
import unit_threaded;
enum myEnumNum = "foo.bar"; //there was a bug that made this not compile
enum myOtherEnumNum;
@UnitTest
void funcAttributes() {
//tests that using the @UnitTest UDA adds this function
//to the list of tests despite its name
1.shouldEqual(1);
}
//won't be tested due to attribute
@DontTest
void testThatWontRun() {
1.shouldEqual(2); //doesn't matter, won't run anyway
}
@DontTest
class TestThatWontRun: TestCase {
override void test() {
null.shouldNotBeNull; //doesn't matter, won't run anyway
}
}
@HiddenTest("Bug id #54321")
class MyHiddenTest: TestCase {
override void test() {
null.shouldNotBeNull; //hidden by default, fails if explicitly run
}
}
@HiddenTest
void testHidden() {
null.shouldNotBeNull; //hidden by default, fails if explicitly run
}
@ShouldFail("Bug id 12345")
void testShouldFail() {
3.shouldEqual(4);
}
@ShouldFail("Bug id 12345")
void testShouldFailWithOtherException() {
throw new Exception("This should not be seen");
}
@Name("first_unit_test")
unittest {
writelnUt("First unit test block\n");
assert(true); //unit test block that always passes
}
@Name("second_unit_test")
unittest {
writelnUt("Second unit test block\n");
assert(true); //unit test block that always passes
}
@("third_unit_test")
unittest {
3.shouldEqual(3);
}
@ShouldFail
unittest {
3.shouldEqual(5);
}
@(42, 2)
void testValues(int i) {
(i % 2 == 0).shouldBeTrue;
}