1

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 テストは正常にパスします。

どうすればこれを行うことができますか?誰かが私を正しい方向に向けることができれば、私はそれを感謝します.

4

1 に答える 1