0

何らかの値を返すメソッドに対して OCMocktest を実行しています。void メソッドの実装方法。たとえば、単利を計算するメソッド。しかし、値は返されません。計算機能を確認するにはどうすればよいですか?

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

OCMock を使用して Result=100 かどうかを確認するには? 戻り型を持つメソッドのみ実装できますか?

  1. calculateSI メソッドが呼び出されているかどうかをテストする方法は?

  2. Result=100 かどうかをテストする方法は?

4

2 に答える 2

0

1) calculateSI が呼び出されたかどうかをテストする場合は、そのオブジェクトをモックする必要があります。これに似たもの:

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

[[calculator expect] calculateSI];

[systemUnderTest calculateSomething];

[calculator verify];

2) ローカル変数の値をテストすることはできません。結果をプロパティにするか、返される必要があります。

于 2013-05-08T06:28:33.380 に答える
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 に答える