groovy - Micronaut 测试 - 禁用缓存

标签 groovy spock micronaut

是否有可能以编程方式关闭缓存的方法?我尝试在测试类中注入(inject) DefaultCacheConfiguration 并在设置方法 set testMode=true 和 MaximumSize=0 中进行设置,但仍然无法正常工作。

@MicronautTest
class CategoriesServiceTest extends Specification {

  @Inject
  @Shared
  DefaultCacheConfiguration cacheConfiguration

  def setupSpec() {
      cacheConfiguration.setMaximumSize(0)
      cacheConfiguration.setTestMode(true)
  }

}

最佳答案

我发现了一些小技巧。我不确定这是最好的解决方案,但确实有效。

我创建了一个类,它全局关闭测试的缓存:

@Factory
class TestConfig {

    @EachBean(DefaultCacheConfiguration)
    CacheConfiguration cacheConfiguration(DefaultCacheConfiguration configuration) {
        println "disabling cache ${configuration.cacheName}"
        configuration.maximumSize = 0
        return configuration
    }

}

关于groovy - Micronaut 测试 - 禁用缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58934320/

相关文章:

java - 我们可以 Runtime.getRuntime().exec ("groovy");

hibernate - GGTS中使用grails的警告

spock - 如何调试GEB Page模型中的静态代码块

grails - geb.env和geb.driver之间的区别

micronaut - 使用 @JdbcRepository 注释关联 JDBC 数据源名称

java - Micronaut:测试失败,找不到页面,但可以通过浏览器正常访问该页面

java - 在什么情况下选择 Katalon 而不是 Selenium?

html - 将 HTML 表格解析为 Groovy 列表?

spock - 如何使用Spock框架进行参数捕获?

java - Micronaut 设置 EmbeddedServer 进行 Pact 测试