Spring オートワイヤリングを使用してインターフェースのインスタンスである依存関係を注入するクラスの JUnit テストを作成しています。テスト中のクラスは、依存関係を明示的にインスタンス化したり、コンストラクターに渡したりすることは決してないため、JMockit もそれをインスタンス化する義務を感じていないようです。
これまで、SpringRunner を使用して Spring ロードのモック依存関係を使用してきましたが、これは機能します。これについて私たちが気に入らない 2 つの点は、1) テストを実行するたびに Spring フレームワークをロードして初期化する必要があり、正確に高速ではないこと、および 2) すべてのモック依存関係を実際のクラスとして明示的に作成する必要があることです。 JMockit は排除に役立ちます。
以下は、テストしているものの簡単な例です。
public class UnitUnderTest {
@Autowired
ISomeInterface someInterface;
public void callInterfaceMethod() {
System.out.println( "UnitUnderTest.callInterfaceMethod calling someInterface.doSomething");
someInterface.doSomething();
}
}
では、問題は、JMockit にモックを作成させる方法はあるのsomeInterface
でしょうか?