Gla*_*ius 0 unit-testing objective-c ocunit
我有以下课程:
#import "Period.h"
@implementation Period
...
- (BOOL)isEqualTo:(id)object {
return [self isEqual:object];
}
- (BOOL)isEqual:(id)object {
if (object == self) {
return YES;
}
if ([[object beginDate] hash] == [[self beginDate] hash] &&
[[object endDate] hash] == [[self endDate] hash]) {
return YES;
}
return NO;
}
...
@end
Run Code Online (Sandbox Code Playgroud)
还有以下测试,使用以下方法编写OCUnit:
Period *period;
NSDate *beginDate;
NSDate *endDate;
- (void)setUp {
beginDate = [NSDate dateWithString:@"2011-02-25"];
endDate = [NSDate dateWithString:@"2011-03-25"];
period = [[Period alloc] initWithBeginDate:beginDate
endDate:endDate];
}
- (void)testEndDateShouldBeGreaterOrEqualThanBeginDate {
Period *newPeriod = [[Period alloc] initWithBeginDate:beginDate
endDate:beginDate];
STAssertEqualObjects(beginDate, [newPeriod beginDate], @"Begin dates are different");
STAssertEqualObjects(endDate, [newPeriod endDate], @"End dates are different");
}
Run Code Online (Sandbox Code Playgroud)
以前我用的是STAssertEquals代替,STAssertEqualObjects而不是调用isEqual方法Period.
我只想了解两件事:
isEqual和之间有什么区别isEqualTo?STAssertEquals比较与标量类型(被用来组成传递给它,并打算在两个参数的原始字节float,int,char等),structs或者unions---你不应该用它来比较Objective-C对象.STAssertEqualObjects通过调用比较两个Objective-C对象isEqual:.
isEqualTo:用于支持NSSpecifierTest(请参阅NSComparisonMethods协议参考).isEqualTo:如果您的对象不是可编写脚本的,则不必提供实现.
| 归档时间: |
|
| 查看次数: |
1348 次 |
| 最近记录: |