たぶんこれは逆効果かもしれませんが、私にはわかりませんが、現在、EasyMock モック、特にモックメソッドが実際に返すものを認識している IntelliJ のデバッガーが必要です。
たとえば、ITransport
モックする必要のあるいくつかのメソッドがあり、何かを返すいくつかのメソッドのみが必要なトランスポート インターフェイスがあります。例えば
ITransport myTransport = createMock(ITransport.class);
myTransport.getID() がモック ID 10 を返すようにします。
expect(myTransport.getID()).andReturn(10);
ID 10 でメソッドを 1 回呼び出すようにしたいのですが、
expect(myTransport.publish(any(...)));
expectLastCall.once();
トランスポート クラスの何かが壊れてmyTransport
呼び出されず、テストが失敗します。デバッガーでコードをステップ実行して、テストが失敗した理由を確認したいだけです。そこで、モック化されたオブジェクトの値を確認するためにブレークポイントを追加しmyTransport
ます。しかし、それらはすべて、ID でさえも「null」と言います。したがって、いくつかの簡単な調査で、これの原因は EasyMock モッククラスであると仮定します。実際には値でオブジェクトを更新せず (これは合理的に聞こえます)、メソッドが呼び出されたときに実行時にモックされた値を返します。
したがって、メソッドが最終的に返す値を確認できる IntelliJ 用のモック対応デバッガーはありますか。
はい、「すべての単体テストを作成する場合、デバッガーは必要ありません」という応答を受け取る前に、それについて知っていることを述べたいと思います。そして、これはレガシー コード、または少なくともテストを念頭に置いて書かれていないコードです。