2017-08-08 76 views
1

有没有办法创建一个NSObject的实例?我试图从NSObject嘲笑类方法,并得到一个错误,objc[86140]: no class for metaclass 0x1065c0e38如何使用OCMock模拟NSObject的类方法

- (void)testChainMethodCalled 
{ 
    id controller = [OCMockObject partialMockForObject:[MyController class]]; 
    MyController *controller = controllerId; 

    id object = [[OCMockObject partialMockForObject:[NSObject alloc] init] ]; 
    [[[object expect] classMethod] cancelPreviousPerformRequestsWithTarget:self selector:@selector(chainMethod) object:nil]; 

    [controller callTestMethod]; 
    OCMVerifyAll(object); 
} 

回答

0

当嘲笑类的方法,你应该使用OCMClassMock。您正在使用嘲笑对象实例的partialMockForObject,而不是类本身。

对于示例:

id objectMock = OCMClassMock([NSObject class]); 

然后你可以嘲笑的类像这样的任何方法:

OCMStub(ClassMethod([objectMock classMethod])).andReturn(mockValue) 

哪里类方法是你嘲讽类方法和mockValue是假的价值你正在嘲笑该类方法

请参阅http://ocmock.org/reference/#mocking-class-methods关于此的更多详细信息

相关问题