При использовании OCMockito отлично работает следующее:
DSAPIManager *mockAPIManager = mock([DSAPIManager class]);
[given([mockAPIManager initWithBaseURL:[mockAPIManager baseURL]]) willReturn:[DSAPIManager sharedAPIManager]];
Однако, когда я пробую то же самое для метода с несколькими аргументами (см. код ниже), я получаю ошибку компилятора «Тип аргумента« недействителен »неполный».
DSAPIManager *mockAPIManager = mock([DSAPIManager class]);
[given([mockAPIManager setLoginCredentialsWithEmail:@""
password:@""]) willReturn:@""];
Кто-нибудь знает, как это сделать?
Редактировать
Моя первоначальная цель, задав этот вопрос, состояла в том, чтобы решить проблему получения ошибки компилятора, когда я пытаюсь выполнить следующее:
[given([mockAPIManager setLoginCredentialsWithEmail:@"" password:@""]) willDo:^id(NSInvocation *invocation) {
// Mock implementation goes here
}];
Подпись метода метода, который я пытаюсь высмеять:
- (void)setLoginCredentialsWithEmail:(NSString *)email password:(NSString *)password;
Что я на самом деле пытаюсь сделать, так это издеваться над реализацией метода void
. (Учитывая метод void
, смоделируйте реализацию метода с помощью блока. Для моих целей метод возвращает блок завершения, который принимает два аргумента. Я хотел бы создать эти два аргумента, а затем запустить блок завершения внутри смоделированный блок реализации.)
mockAPIManager
? - person Jon Reid   schedule 14.03.2015void
методов, которые имеют некоторые побочные эффекты. Спасибо. - person Andrew Lauer Barinov   schedule 16.03.2015