我是 ocUnit 的新手,我正在尝试使用 STAsertTrue 方法和 == 比较 2 个数组是否相等。
下面的测试只是向被测系统 (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");
}
然后在我的生产代码中,我简单地返回相同的数组
- (NSArray *)parseAndReturn
{
NSArray* x = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4",nil];
return x;
}
然而,当测试运行时,我遇到了失败。我应该如何比较这些对象以查看它们是否相同?
提前致谢
最佳答案
有一个宏 STAsertEqualObjects
,它使用 -isEqual:
进行对象比较。我认为这正是您所需要的。
STAsertTrue
在你的例子中比较对象指针并失败,因为 result
和 expected
是不同的对象(它们的指针是不同的)。
关于objective-c - 在 ocUnit 中比较 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4840681/