Próbuję mock metodę, która ma równowartość następujący podpis:Jak wyśmiewać metodę, która akceptuje uchwyt jako argument w OCMock?
- (NSDictionary *) uploadValues:(BOOL)doSomething error:(NSError **)error
chcę go zwrócić małą słownika tak, że mój test może upewnić się, że kod używa słownika prawidłowo. jednak bez względu na to, co robię, OCMock zawsze zwraca zero z metody, niezależnie od tego, jak ją rozpracować. Błąd zaczyna się zera w kodzie I 'm testowania, a te są różne sposoby próbowałem stubbing go:
NSError * error = nil;
[[[mock stub] andReturn:someDict] uploadValues:YES error:&error];
[[[mock stub] andReturn:someDict] uploadValues:YES error:nil];
[[[mock stub] andReturn:someDict] uploadValues:YES error:[OCMArg any]];
i żaden z nich nie działa. Czy OCMock obsługuje uchwyty w postaci skrótowych argumentów wiadomości, a jeśli tak, to w jaki sposób to zrobić?
Tak, to ma sens. Dzięki za wgląd. – Kevlar
Używanie i dostarczanie metod akceptujących NSError ** jest preferowanym mechanizmem obsługi błędów w Cocoa. Proponuję trzymać się tego paradygmatu i rzucić okiem na odpowiedź Andreasa Järlidena, aby sfałszować te metody. – rluba
Zobacz odpowiedź Andreasa Järlidena poniżej. Twoja odpowiedź jest niepoprawna. – markshiz