猕猴桃规格单位测试:实例方法'-attachToVerifier:验证程序:'未找到

Jes*_*ers 8 tdd bdd cocoa-touch unit-testing objective-c

我正在建立一些新西兰测试并得到一个我无法解释的警告.我是新来的新西兰人.

我有一个模拟对象设置:

id conversationMock = [KWMock mockForProtocol:@protocol(Conversation)];
[conversationMock stub:@selector(end)];
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,一个名为"对话"的属性:

@interface MyController ()
@property (nonatomic, assign) id<Conversation> conversation;
@end
Run Code Online (Sandbox Code Playgroud)

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

it(@"should end conversation", ^{
  [[[myController.conversation] should] receive] end];
  [myController stopTalking];
});
Run Code Online (Sandbox Code Playgroud)

编译器(LLVM 3.0)显示警告:"实例方法"-attachToVerifier:验证程序:'not found'

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

Jes*_*ers 12

将ID转换为NSObject可以摆脱警告:

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


小智 9

你需要做的是:

build settings -> Other Linker flags
Run Code Online (Sandbox Code Playgroud)

添加标志: -all_load