OCMock 中的存根类方法
Posted
技术标签:
【中文标题】OCMock 中的存根类方法【英文标题】:Stubbing Class Method in OCMock 【发布时间】:2015-03-25 16:40:26 【问题描述】:- (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”,但我不确定为什么没有正确调用模拟方法。我在 ios 上使用 OCMock 3.1.2。非常感谢任何帮助。
【问题讨论】:
【参考方案1】:阅读更多内容后,我怀疑我遇到了与以下帖子中显示的类似的问题:
How to mock class method (+)?
我随后采用了 Christopher Pickslay 在上面的帖子中建议的方法,效果很好。
【讨论】:
以上是关于OCMock 中的存根类方法的主要内容,如果未能解决你的问题,请参考以下文章
不能在 Xcode 5.0 中使用 OCMock 2.1+ 存根类方法