首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存根协议返回为空OCMockito

存根协议返回为空OCMockito
EN

Stack Overflow用户
提问于 2018-10-01 16:40:52
回答 1查看 61关注 0票数 0

我已尝试存根协议方法,但它返回为nil。请检查以下代码。

代码语言:javascript
复制
@protocol Client
- (Account* _Nullable) login:(nullable NSString*)username
                                        password:(nonnull NSData*)login;

我有一个名为ClientImplementation的对象,它实现了客户端协议。

在我的测试用例中,我在setup()中模拟这个类。

代码语言:javascript
复制
@property(nonatomic, strong) ClientImplementation<Client> *mockClient;
 self.mockClient =  mockObjectAndProtocol([ClientImplementation class],@protocol(Client));

但是当我存根方法时,它返回为nil。

代码语言:javascript
复制
Account *account = [[Account alloc]init];
    account.name = @"fdsafdsfs";
    [given([self.mockClient login:@""passwrod:anything()]) willReturn:account];

我能知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-02 09:03:18

OCMockito的默认行为是方法返回nil,除非您另行指定。下面是您指定的内容:

代码语言:javascript
复制
given([self.mockClient login:@"" password:anything()]) willReturn:account

这告诉OCMockito在使用匹配的参数调用login:password:时返回accountanything()可以匹配任何内容,但@""只匹配空字符串。我怀疑您的测试是使用不同的登录名调用的。

given语句中指定所需的登录名。事实上,如果您愿意,您可以让不同的登录返回不同的帐户。

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

https://stackoverflow.com/questions/52587377

复制
相关文章

相似问题

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