我正在为OCMocktest做一些会返回一些价值的方法。如何实现void方法。例如,计算简单兴趣的方法。但它不会带来任何价值。如何检查计算功能?
-(void)calculateSI
{
float Result= PXnXr/100;
}
如何使用OCMock检查Result = 100?我是否只能为具有返回类型的方法实现?
如何测试是否调用calculateSI方法?
如何测试Result = 100?
答案 0 :(得分:0)
1)如果你想测试是否调用calculateSI,你应该模拟该对象。类似的东西:
id calculator = [OCMockObject mockForClass:[SICalculator class]];
systemUnderTest.calculator = calculator
[[calculator expect] calculateSI];
[systemUnderTest calculateSomething];
[calculator verify];
2)您无法测试局部变量值。您应该将结果作为属性或返回。
答案 1 :(得分:0)
相反,您可以修改您的方法,将主要数量作为参数,并返回计算出的SI,如下所示。
- (float)calculateSI:(float)inPXnXr
{
return inPXnXr/100;
}
,您的测试用例将变为
- (void)test__calculateSI__invokeWith300
{
CalculatorViewController *masterVC = [[CalculatorViewController alloc] init];
float result = [masterVC calculateSI:300.0];
STAssertTrue(result == 3, @"FAILED");
}
您不需要使用OCMock,因为您正在测试方法的结果。您可以直接调用该方法并测试返回值。