RESTコントローラー、サービス、およびJPAリポジトリを備えたSpring Boot 2.2.4プロジェクトがあります。karate モック サーブレットを使用してコントローラーとサービスのモックを定義できますが、リポジトリをどうすればよいかわかりません。コントローラー @Autowired サービス。サービス @Autowired リポジトリ。
その結果、空手のテストを実行すると、次のメッセージが表示されます。
原因: org.springframework.beans.factory.NoSuchBeanDefinitionException: タイプ 'repository.EmployeeRepository' の適格な Bean がありません: オートワイヤー候補として適格な少なくとも 1 つの Bean が必要です。依存関係アノテーション: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
私が使用している MockServlet は、まさにデモのこのクラスです: MockSpringMvcServlet
これに似た MockConfig クラスを使用: MockDemoConfig
最後に、karate-config.js ファイルは MockSpringMvServlet を次のようにブートストラップします (空手のデモ コードに示されているように)。
function fn() {
var config = {
baseUrl: 'http://localhost:8080'
};
var Factory = Java.type('demo.MockSpringMvcServlet');
karate.configure('httpClientInstance', Factory.getMock());
return config;
}
注: API 呼び出しから JPA リポジトリを削除すると、Karate Mock Servlet はサーバーが実行されていなくても正常に動作し、Karate テストは正常にパスします。
どうすればこれを行うことができますか?誰かが私を正しい方向に向けることができれば、私はそれを感謝します.