iOS Kiwi测试用例,错误通过引用传递

时间:2014-12-18 17:01:22

标签: ios unit-testing pass-by-reference kiwi

让我们说:

 - (NSString *)someMethod:(NSString *)input
 {
      NSError *error = nil;
      NSString *result = [otherObject processInput:input error:&error];

      if (error == nil) {
           return result;
      }
      else {
           return nil;
      }
 }

如何使用Kiwi对其进行单元测试以检查其他行为?

当然我可以把一些讨厌的东西当作input,但我不想使用那种方法。它是someMethod:方法的单元测试,不是processInput:error:方法,otherObjectKWMock。我一直在尝试使用KWCaptureSpy类或stub: withArguments:,但要么我使用了它们错误,要么它们不是解决方案。

此致

1 个答案:

答案 0 :(得分:0)

在Cocoa中,你应该检查一个方法是否返回nil,而不是errornil http://rentzsch.tumblr.com/post/260201639/nserror-is-hard检查。

所以也许重写someMethod来检查otherObject存根返回的值,而不是error指针。以这种方式测试会更容易(您只需要从stub:andReturn:调用KWMock方法,返回nil或非零值),您将遵循Cococa惯例。