Skip to content

Instantly share code, notes, and snippets.

@dornad
Last active October 2, 2017 12:24
Show Gist options
  • Save dornad/f2a8ba4b3ddab35114cc to your computer and use it in GitHub Desktop.
Save dornad/f2a8ba4b3ddab35114cc to your computer and use it in GitHub Desktop.
NSError** mocking with OCMock 3
- (void)testMethodExpectingNoError
{
id someObject = [self someMethodThatReturnsAnExpectedObject];
id mockDependencuy = OCMClassMock([DependencyToBeMocked class]);
OCMStub([mockDependency someMethodWithErrorRef:[OCMArg anyObjectRef]).andReturn(someObject);
NSError * error = nil;
id someReturnedValue =[self.objectUnderTest someMethodWithErrorRef:&error]:
XCTAssertNotNil(someReturnedValue);
XCTAssertNil(error);
}
- (void)testMethodExpectingAnError
{
id mockDependencuy = OCMClassMock([DependencyToBeMocked class]);
void (^invocationBlock)(NSInvocation*) = ^void(NSInvocation* invocation) {
NSError * __autoreleasing *anError = nil;
[invocation getArgument:&anError atIndex:2];
*anError = [NSError errorWithDomain:@"SomeDomain" code:1234 userInfo:aUserInfoDictionaryOrNil];
};
OCMStub([mockDependency someErrorWithErrorRef:[OCMArg anyObjectRef]).andDo(invocationBlock).andReturn(nil);
NSError * error = nil;
id someReturnedValue =[self.objectUnderTest someMethodWithErrorRef&error]:
XCTAssertNil(someReturnedValue);
XCTAssertNotNil(error);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment