objective-c - 在 ocUnit 中比较 NSArray

标签 objective-c unit-testing ocunit

我是 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 在你的例子中比较对象指针并失败,因为 resultexpected不同的对象(它们的指针是不同的)。

关于objective-c - 在 ocUnit 中比较 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4840681/

相关文章:

Objective-C iPhone - YouTubePlugIn.webplugin/YouTubePlugIn 警告

ios - 在 pushViewController 之后重置 ScrollView contentOffset

ios - iOS 中使用 NSOperation 实现 AsyncTask

c# - IOFileNotFoundException mscorlib.dll

unit-testing - cakephp 单元测试模型,fixtures 问题

ios - 无法将OCUnit测试框架添加到现有Xcode项目中

ios - 如何修改SWIFT_MODULE_NAME?

javascript - JSMock 的奇怪问题

iphone - OCUnit 无法识别导入的文件

ios - OCUnit 不适用于安全框架?