同じクラスの他のメソッドを呼び出すいくつかのメソッドをテストしたい。これは基本的に同じメソッドですが、データベースにはいくつかのデフォルト値があるため、引数が少なくなります。私はこの方法getPriceForOne()メソッド呼び出しのgetPrice(int型)と呼ばれていたのであれば、私はテストをしたい、このメソッドが同じクラスの他のメソッドから呼び出されたかどうかを確認する方法mockito
public class A{
Integer quantity;
Integer price;
A(Integer q, Integer v){
this quantity = q;
this.price = p;
}
public Float getPriceForOne(){
return price/quantity;
}
public Float getPrice(int quantity){
return getPriceForOne()*quantity;
}
}
に表示されます。基本的には、通常のメソッドgetPrice(int)とモックgetPriceForOneを呼び出します。
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
....
public class MyTests {
A mockedA = createMockA();
@Test
public void getPriceTest(){
A a = new A(3,15);
... test logic of method without mock ...
mockedA.getPrice(2);
verify(mockedA, times(1)).getPriceForOne();
}
}
私はもっと複雑なファイルを持っています。他の人には便利なユーティリティであり、すべてが1つのファイルでなければなりません。
何が欲しいのは、部分的モックですが、推奨されていない、Mockitoは、実際にいくつかの特定の例は例外でこれを阻止します。ユーティリティクラスの場合は、各メソッドを完全にテストするだけです。そうでない場合、つまり複雑な処理が必要な場合は、代わりに合成を使用してコードを設計することができます。 – Brice