0

我正在为将返回一些值的方法进行 OCMocktest。如何实现 void 方法。例如计算单利的方法。但它不返回任何值。如何检查计算功能?

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

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

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

  2. 如何测试Result=100?

4

2 回答 2

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

于 2013-05-08T08:41:19.893 回答
0

1)如果你想测试是否调用了calculateSI,你应该模拟那个对象。与此类似的东西:

id calculator = [OCMockObject mockForClass:[SICalculator class]];
systemUnderTest.calculator = calculator

[[calculator expect] calculateSI];

[systemUnderTest calculateSomething];

[calculator verify];

2)您不能测试局部变量值。您应该将 result 作为属性或返回。

于 2013-05-08T06:28:33.380 回答