【发布时间】:2021-07-20 17:43:05
【问题描述】:
在实现文件 (.mm) 中,我有一个函数根据在其他 API 中设置的布尔值 isTrue 调用不同的 API
@implementation Controller
-(void) setProperty:(Id)Id value:(NSObject*)value
{
if(value) {
if(self.isTrue) {
[self function1]
} else {
[self function2]
}
}
}
现在我需要编写一个测试,对于不同的 isTrue 值,我需要测试是否调用了正确的函数。
我写了类似的东西:
-(void) testCaseforProperty
{
_controller.isTrue = true;
_controller setProperty:0 value:@YES];
// I need to check if function1 is called here
}
谁能告诉我如何在这里写一个测试来代替评论,以便测试这里是否使用 OCMock 或 XCTest 或任何其他方式调用了 function1?
【问题讨论】:
-
function1实际上在做什么?您应该测试它应该做的任何事情都已完成,而不是检查函数本身是否被调用。因此,如果function1和function2设置不同的属性,请测试是否在每种情况下都设置了适当的属性。 -
是的,这是有道理的。 Function1 实际上设置了另一个变量的值。谢谢
标签: objective-c unit-testing ocmock xctestcase