複雑なパラメータユニットテストとメソッド呼び出しを検証するためのベストプラクティスは何ですか?検証んユニットテストメソッドのパラメータ検証のベストプラクティス
A):
class ClassA {
ClassB dependency;
void someFunction(SomeInputForA input) {
// do some thing
dependency.anotherFunction(differentInput);
}
}
私はsomeFunction
呼び出し、適切な入力とanotherFunction
であることを確認するためと考えることができる2つのオプション:
unitUnderTest.dependency = mockClassB;
InputClass expectedDifferentInput = ... ;
verify(mockClassB).anotherFunction(expectedDifferentInput);
B)を呼び出すための依存関係のモックにanotherFunction
の呼び出しで引数キャプターを行うとtを主張彼のプロパティ
unitUnderTest.dependency = mockClassB;
ArgumentCaptor<InputClass> captor = ArgumentCaptor.for(InputClass.class);
verify(mockClassB).anotherFunction(captor.capture());
InputClass capturedInput = captor.getValue();
assertEquals(value, capturedInput.param1);
// and more asserts afterwards
ここには推奨パスがありますか?それはより厳密に感じられ、オブジェクトが適切である実装に頼っていないので、私はキャプチャメソッドに傾いています。
思考?
値を取得し、メソッドによって作成または管理されている場合は、それらをアサートします。それらが通過した場合、すなわちサービスとして、Aが適切である。 – Compass