Tor*_*ups 6 unit-testing objective-c ocunit
我是ocUnit的新手,我试图将2个数组与STAssertTrue方法进行比较,并且==表示相等.
下面的测试只是询问被测系统(sut)的数据
- (void) testParse {
SomeClassForTesting* sut = [[SomeClassForTesting alloc] init];
NSArray* result = [sut parseAndReturn];
NSArray* expected = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4",nil];
STAssertTrue(result == expected, @"This test failed");
}
Run Code Online (Sandbox Code Playgroud)
然后在我的生产代码中,我只返回相同的数组
- (NSArray *)parseAndReturn
{
NSArray* x = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4",nil];
return x;
}
Run Code Online (Sandbox Code Playgroud)
然而,当测试运行时,我失败了.我应该如何比较这些对象,看它们是否相同?
先感谢您
你可能想要这样的东西:
STAssertTrue([result isEqual: expected], @"This test failed");
Run Code Online (Sandbox Code Playgroud)
如果每个项目没有从其 isEqual 实现中返回 true,这将遍历数组并返回 false。如果您的数组成员是 NSString(如所示),那么您应该可以开始了。
正如另一位朋友所说,在 Objective-C 中,== 意味着指针相等,而不是值相等。
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |