objective-c - Kiwi 规范单元测试 : Instance method '-attachToVerifier:verifier:' not found

标签 objective-c cocoa-touch unit-testing tdd bdd

我正在构建一些 Kiwi 测试并收到一个我无法解释的警告。我是 Kiwi 的新手。

我有一个模拟对象设置:

id conversationMock = [KWMock mockForProtocol:@protocol(Conversation)];
[conversationMock stub:@selector(end)];

在我的 Controller 中,有一个名为“conversation”的属性:

@interface MyController ()
@property (nonatomic, assign) id<Conversation> conversation;
@end

模拟被分配给属性,然后在规范中我检查是否在对话中调用了方法“end”:

it(@"should end conversation", ^{
  [[[myController.conversation] should] receive] end];
  [myController stopTalking];
});

编译器 (LLVM 3.0) 显示警告:“未找到实例方法‘-attachToVerifier:verifier:’”

这是什么原因?这是我需要解决的问题吗? (测试运行正常,检查结束工作正常的方法调用)

最佳答案

将 id 类型转换为 NSObject 可以消除警告:

[[(NSObject*)[myController.conversation] 应该] 接收] 结束];

关于objective-c - Kiwi 规范单元测试 : Instance method '-attachToVerifier:verifier:' not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524747/

相关文章:

objective-c - 如何在 UIWebVIew 中显示文本

iphone - UITableView 未正确对齐

ios - Xcode 4 和 Interface Builder : Editing Vertical Spacing Constraint (Anchor Top, 不是底部)

unit-testing - 我如何知道何时使用基于状态的测试和模拟测试?

iphone - 更新本地通知 BadgeNumber

ios - objective-c 中大于38位数字的乘法或除法

ios - 检查 iOS 是否通过应用程序显示系统警报的可靠方法? (如定位服务等)

ios - 正在绘制圆角 drawRect : faster than using CALayer setCornerRadius?

android - 使用 Android 测试过滤器(@SmallTest、@MediumTest、@LargeTest)进行本地单元测试

unit-testing - Clojure "is"断言未按预期工作