OCMock测试void方法

时间:2013-05-08 05:54:50

标签: iphone objective-c void ocmock

我正在为OCMocktest做一些会返回一些价值的方法。如何实现void方法。例如,计算简单兴趣的方法。但它不会带来任何价值。如何检查计算功能?

-(void)calculateSI
{
float Result= PXnXr/100;
}

如何使用OCMock检查Result = 100?我是否只能为具有返回类型的方法实现?

  1. 如何测试是否调用calculateSI方法?

  2. 如何测试Result = 100?

2 个答案:

答案 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,因为您正在测试方法的结果。您可以直接调用该方法并测试返回值。