-
Notifications
You must be signed in to change notification settings - Fork 158
/
EXPFailTest.m
68 lines (56 loc) · 1.97 KB
/
EXPFailTest.m
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
#import "TestHelper.h"
// Test case class without failWithException: method
@interface TestCaseClassWithoutFailMethod : NSObject
- (void)fail;
@end
@implementation TestCaseClassWithoutFailMethod
- (void)fail {
EXPFail(self, 777, "test.m", @"epic fail");
}
@end
// Test case class with failWithException: method
@interface TestCaseClassWithFailMethod : TestCaseClassWithoutFailMethod {
NSException *_exception;
}
@property(nonatomic, retain) NSException *exception;
- (void)failWithException:(NSException *)exception;
@end
@implementation TestCaseClassWithFailMethod
@synthesize exception=_exception;
- (void)dealloc {
self.exception = nil;
[super dealloc];
}
- (void)failWithException:(NSException *)exception {
self.exception = exception;
}
@end
@interface EXPFailTest : SenTestCase
@end
@implementation EXPFailTest
- (void)test_EXPFailWithTestCaseClassThatDoesNotHaveFailureMethod {
// it throws the exception directly
TestCaseClassWithoutFailMethod *testCase = [TestCaseClassWithoutFailMethod new];
@try {
[testCase fail];
} @catch(NSException *exception) {
assertEqualObjects([exception name], @"Expecta Error");
assertEqualObjects([exception reason], @"test.m:777 epic fail");
}
[testCase release];
}
- (void)test_EXPFailWithTestCaseClassThatHasFailureMethod {
// it calls failWithException: method
TestCaseClassWithFailMethod *testCase = [TestCaseClassWithFailMethod new];
assertNil(testCase.exception);
[testCase fail];
NSException *exception = testCase.exception;
assertEqualObjects([exception name], SenTestFailureException);
assertEqualObjects([exception reason], @"epic fail");
NSDictionary *exceptionUserInfo = [exception userInfo];
assertEqualObjects([exceptionUserInfo objectForKey:SenTestDescriptionKey], @"epic fail");
assertEqualObjects([exceptionUserInfo objectForKey:SenTestFilenameKey], @"test.m");
assertEqualObjects([exceptionUserInfo objectForKey:SenTestLineNumberKey], [NSNumber numberWithInt:777]);
[testCase release];
}
@end