我正在为将返回一些值的方法进行 OCMocktest。如何实现 void 方法。例如计算单利的方法。但它不返回任何值。如何检查计算功能?
-(void)calculateSI
{
float Result= PXnXr/100;
}
如何使用 OCMock 检查 Result=100 是否?我可以只为具有返回类型的方法实现吗?
如何测试是否调用了calculateSI方法?
如何测试Result=100?
我正在为将返回一些值的方法进行 OCMocktest。如何实现 void 方法。例如计算单利的方法。但它不返回任何值。如何检查计算功能?
-(void)calculateSI
{
float Result= PXnXr/100;
}
如何使用 OCMock 检查 Result=100 是否?我可以只为具有返回类型的方法实现吗?
如何测试是否调用了calculateSI方法?
如何测试Result=100?
相反,您可以修改您的方法以将本金金额作为参数并返回计算出的 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,因为您正在测试方法的结果。您可以直接调用该方法并测试返回值。
1)如果你想测试是否调用了calculateSI,你应该模拟那个对象。与此类似的东西:
id calculator = [OCMockObject mockForClass:[SICalculator class]];
systemUnderTest.calculator = calculator
[[calculator expect] calculateSI];
[systemUnderTest calculateSomething];
[calculator verify];
2)您不能测试局部变量值。您应该将 result 作为属性或返回。