2017-08-08 17 views
1

NSObjectのインスタンスを作成する方法はありますか?私はNSObjectからクラスメソッドを模擬しようとしていて、エラーが発生していますobjc[86140]: no class for metaclass 0x1065c0e38OCMockを使用して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]); 

その後、あなたは、このようなようにクラス上の任意のメソッドを模擬することができます。ClassMethodあなたが嘲笑しているクラスメソッドであるとmockValueが偽の値である

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

あなたはそのクラスメソッドのために嘲笑しています

この詳細については、http://ocmock.org/reference/#mocking-class-methodsを参照してください

関連する問題