Протокол окурка возвращается как ноль OCMockito - PullRequest
0 голосов
/ 01 октября 2018

Я пытался заглушить метод протокола, но он возвращается как ноль.Пожалуйста, проверьте следующий код.

@protocol Client
- (Account* _Nullable) login:(nullable NSString*)username
                                        password:(nonnull NSData*)login;

И у меня есть объект с именем ClientImplementation, который реализует клиентский протокол.

В моем тестовом примере я высмеиваю класс как этот в setup ().

@property(nonatomic, strong) ClientImplementation<Client> *mockClient;
 self.mockClient =  mockObjectAndProtocol([ClientImplementation class],@protocol(Client));

Но когда я заглушаю метод, он возвращается как ноль.

Account *account = [[Account alloc]init];
    account.name = @"fdsafdsfs";
    [given([self.mockClient login:@""passwrod:anything()]) willReturn:account];

Могу я узнать, что я сделал не так?

1 Ответ

0 голосов
/ 02 октября 2018

По умолчанию в OCMockito методы возвращают nil, если не указано иное.Вот что вы указали:

given([self.mockClient login:@"" password:anything()]) willReturn:account

Это говорит OCMockito о возвращении account при вызове login:password: с соответствующими параметрами.anything() будет соответствовать чему угодно, но @"" будет соответствовать только пустой строке.Я подозреваю, что ваш тест звонит с другим логином.

Укажите желаемый логин в операторе given.На самом деле, вы можете иметь разные логины и возвращать разные аккаунты, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...