首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OCMock和Nocilla不兼容吗?

OCMock和Nocilla不兼容吗?
EN

Stack Overflow用户
提问于 2014-10-14 13:32:01
回答 2查看 318关注 0票数 1

我试图在同一组单元测试中同时使用OCMock和Nocilla。我使用CocoaPods来安装它们,并使用

代码语言:javascript
复制
#import <OCMock/OCMock.h>
#import <Nocilla/Nocilla.h>

但是,当我尝试以以下方式使用Nocilla的.andReturn时(其中subscriptionData是NSData *):

代码语言:javascript
复制
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不兼容?我似乎在任何地方都找不到--事实上,我看到的正好相反--很多人一直在同一个测试框架中使用这两种测试框架的例子。所以我必须假设我做错了什么,有人能告诉我什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-29 15:14:38

OCMock确实定义了一个名为andReturn的宏,该宏只有一个参数。如果Nocilla还使用了一个参数为andReturn的东西,那么这就是不兼容。如前所述,可以通过从andReturn中取消定义OCMock宏来避免这种情况。这显然意味着以后不可能使用OCMock语法的这一部分。

票数 5
EN

Stack Overflow用户

发布于 2015-12-12 19:32:06

您可以使用标准方括号表示法来使用这两种符号,例如:

代码语言:javascript
复制
[stubRequest(@"GET", myURL) andReturn](200).withBody(body);

很丑,但很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26362151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档