1

假设我们有:

 - (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:方法的单元测试,它otherObject是一个KWMock. 我一直在尝试使用KWCaptureSpy类,或者stub: withArguments:我用错了它们,或者它们不是解决方案。

问候

4

1 回答 1

0

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

所以可能会重写someMethod以检查otherObject存根返回的值,而不是error指针。以这种方式进行测试会更容易(您只需调用stub:andReturn:方法 from KWMock,返回其中一个nil或一个非 nil 值)并且您将遵循 Cococa 约定。

于 2014-12-18T20:37:23.313 回答