OCMock中的Stubbing类方法

时间:2015-03-25 16:40:27

标签: objective-c ocmock

- (void)testStringExample {

    // Given
    NSString *testString = @"Test";

    id mock = OCMClassMock([NSString class]);
    OCMStub([mock stringWithContentsOfFile:OCMOCK_ANY
                              encoding:NSUTF8StringEncoding
                                 error:nil]).andReturn(testString);

    // When
    NSString *result = [NSString stringWithContentsOfFile:@"SomeFilePath"
                                             encoding:NSUTF8StringEncoding
                                                error:nil];

    // Then
    XCTAssertEqualObjects(result, testString);
}

正如您所看到的,我一直在尝试使用OCMock存根NSString类方法,但似乎没有任何运气。测试失败,表明“(null)”不等于“Test”,但我不确定为什么没有正确调用mocked方法。我在iOS上使用OCMock 3.1.2。任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

在做了更多阅读之后,我怀疑我遇到了与以下帖子中显示的问题类似的问题:

How to mock class method (+)?

我随后采用了克里斯托弗皮克莱(Christopher Pickslay)在上面的帖子中提出的方法,这是一种享受。