【发布时间】:2016-06-03 12:59:29
【问题描述】:
我正在使用OCMock 3 在我的 iOS 项目中进行单元测试。
我只是想验证一个函数是否被调用而不关心传入的参数值是什么。
例如,我想验证以下函数是否被调用:
[school startTime:currentTime];
(简短说明:School 类中的函数-(void)startTime:(long long) 接受long long 类型参数)
在我的测试用例中我尝试过:
OCMVerify([schoolMock startTime:(long long)[OCMArg any]]);
我很确定被测代码已被调用,但出现错误:
OCMockObject(School):Method startTime:2005634354 was not invoked.
看起来 OCMock 仍在验证传递给函数的参数的确切值。 为什么?
【问题讨论】:
-
在
startTime:方法中放置一个断点以确保它被调用。 -
@stevekohls,做到了,它被调用了。
-
当您遇到断点时,记录调用实例以验证它是一个模拟而不是真正的实现。
-
@KyleParent ,我做到了,它确实在模拟实例上运行。
-
你能分享你的测试和任何相关的实现吗?
标签: ios objective-c unit-testing ocmock