我试图在同一组单元测试中同时使用OCMock和Nocilla。我使用CocoaPods来安装它们,并使用
#import <OCMock/OCMock.h>
#import <Nocilla/Nocilla.h>但是,当我尝试以以下方式使用Nocilla的.andReturn时(其中subscriptionData是NSData *):
stubRequest(@"GET", @"https://api.test.com/api/beaconinbox/subscriptions/list").andReturn(200).withBody(subscriptionData);我得到一个编译器错误,如下所示:
/Users/ravi/GitHub/Mobile/ClinicalInbox/ClinicalInboxTests/ClinicalInboxTests.m:63:93:属性“_andReturn”在“LSStubRequestDSL*”类型的对象上找不到
它一直存在,直到我从代码中删除#import "<OCMock/OCMock.h>"。那么我所有的测试都运行得很完美。
是否已知与OCMock和Nocilla不兼容?我似乎在任何地方都找不到--事实上,我看到的正好相反--很多人一直在同一个测试框架中使用这两种测试框架的例子。所以我必须假设我做错了什么,有人能告诉我什么吗?
发布于 2014-10-29 15:14:38
OCMock确实定义了一个名为andReturn的宏,该宏只有一个参数。如果Nocilla还使用了一个参数为andReturn的东西,那么这就是不兼容。如前所述,可以通过从andReturn中取消定义OCMock宏来避免这种情况。这显然意味着以后不可能使用OCMock语法的这一部分。
发布于 2015-12-12 19:32:06
您可以使用标准方括号表示法来使用这两种符号,例如:
[stubRequest(@"GET", myURL) andReturn](200).withBody(body);很丑,但很管用。
https://stackoverflow.com/questions/26362151
复制相似问题