let's say we have:
- (NSString *)someMethod:(NSString *)input
{
NSError *error = nil;
NSString *result = [otherObject processInput:input error:&error];
if (error == nil) {
return result;
}
else {
return nil;
}
}
How can I unit test it using Kiwi to check how else is behaving?
Of course I could put something nasty as input but I don't want to use that approach. It's unit test for someMethod: method, not for processInput:error: method and otherObject is a KWMock. I've been trying to use KWCaptureSpy class, or stub: withArguments: but either I've used them wrong or they are not the solution.
Regards
In Cocoa you should check if a method returns nil, not check error against nil: http://rentzsch.tumblr.com/post/260201639/nserror-is-hard.
So maybe rewrite someMethod to check value returned by otherObject stub, not the error pointer. It will be easier to test that way (you only have to call stub:andReturn: method from KWMock, returning either nil or a non-nil value) and you will follow Cococa conventions.