私はCrudRepository
を使用するコントローラのテストを書いています。通常、実際のリポジトリインスタンスの代わりにmockを使用して単体テストを分離したいと思います。しかし、Springは実際のリポジトリのプロキシを注入し続けますが、それらを効果的に排除する方法はわかりません。Springテストでリポジトリを除外するにはどうすればいいですか?
のような私のユニットテストを見て何か:
@SpringApplicationConfiguration(TestConfiguration)
@WebAppConfiguration
class ControllerSpec extends Specification {
...
}
設定は次のようになります。
@Configuration
@ComponentScan
@EnableAutoConfiguration
class TestConfiguration {
@Bean
AccountRepository accountRepository() {
mock(AccountRepository)
}
}
私は@NoRepositoryBean
と設定クラスに注釈を試みたが、それはうまくいきませんでした。私はComponentScan
で正規表現を使ってexcludeFilters
を試してみましたが、動作しませんでした。
@MockプライベートAccountRepository accountRepositoryを試してみたいかもしれません。クラスレベルで。 – asg
コントローラクラスのAccountRepositoryにsetterメソッドを追加する方法はありますか?テストを実行する前に、repoをmockインスタンスとして設定してください。 –