は、以下の方法で考えてみましょう:私はこのコードを書いていないメソッドを実行せずにメソッド呼び出しと戻り値をモックする方法はありますか?
public boolean isACertainValue() {
if(context.getValueA() != null && context.getValueA().toBoolean() == true) {
if(context.getType() != null && context.getType() == ContextType.certainType) {
return true;
}
}
return false;
}
を、それは地獄のように醜いですが、それは完全にovercomplicatedですが、私はそれで働かなければなりません。
今、私はこのメソッドの呼び出しに依存するメソッドをテストしたいと思います。
私はでこれに対処できると思っていた:それは私がテストしたい場合だから
Mockito.when(spy.isACertainValue()).thenReturn(true);
。
しかし、それはまだ方法-体を呼び出しているとして、それは動作しません:/
私はnullpointersを取得したり、むしろ私は
misusing.WrongTypeOfReturnValueの線に沿って何かを得ます。ブール値はgetValueA()によって返されません。
Mockito.when(contextMock.getValueA()).thenReturn(new ValueA());
とMockito.when(contextMock.getType()).thenReturn(ContextType.certainType);
が、その後、私は私ができるように思われるカントnullポインタを取得します: getValueAは()ValueA
に
を返す必要がありますので、私は何をする(回避策として)みましたデバッグする。
この場合、どのようにして正常に処理されますか?
それを行う方法を正確ですが、多分あなたは、あなたのテストで、さらに上の必要があることvalueAの値がありますので、あなたもオブジェクトが、返されないだけのリターンモック必要があります(デフォルトの)コンストラクタでインスタンス化されたインスタンス – Stultuske