gpt4 book ai didi

spring - 如何在 Spring 测试中排除存储库?

转载 作者:行者123 更新时间:2023-12-05 06:42:36 25 4
gpt4 key购买 nike

我正在为使用 CrudRepository 的 Controller 编写测试。通常,我想通过使用模拟而不是实际的存储库实例来隔离单元测试。但是,Spring 不断注入(inject)实际的 Repository 代理,我不知道如何有效地排除它们。

我的单元测试看起来像这样:

@SpringApplicationConfiguration(TestConfiguration)
@WebAppConfiguration
class ControllerSpec extends Specification {
...
}

配置如下:

@Configuration
@ComponentScan
@EnableAutoConfiguration
class TestConfiguration {

@Bean
AccountRepository accountRepository() {
mock(AccountRepository)
}

}

我已经尝试使用 @NoRepositoryBean 注释配置类,但它没有用。我还尝试使用正则表达式类型在 ComponentScan 中使用 excludeFilters,但它也没有用。

最佳答案

@EnableAutoConfiguration 注释有一个 excludes 属性,允许用户忽略一些自动配置功能。其中大部分由相应的 *AutoConfiguration 类表示。特别是要绕过存储库,可以从自动配置中排除以下内容:

  • HibernateJpaAutoConfiguration
  • DataSourceAutoConfiguration
  • JpaRepositoriesAutoConfiguration

我不太确定它们的哪个组合是绝对最小值,但对它们进行反复试验应该相对容易。

关于spring - 如何在 Spring 测试中排除存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com