【问题标题】:Micronaut testing - disable cacheMicronaut 测试 - 禁用缓存
【发布时间】:2019-11-19 12:37:50
【问题描述】:

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

@MicronautTest
class CategoriesServiceTest extends Specification {

  @Inject
  @Shared
  DefaultCacheConfiguration cacheConfiguration

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

}

【问题讨论】:

    标签: groovy spock micronaut


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      从 1.3.0.M1 开始,添加了一个 noop 缓存实现,您可以为测试或任何其他环境启用它。见https://micronaut-projects.github.io/micronaut-cache/latest/guide/#noop

      【讨论】:

      • 美丽...与预定的工作一样吗?
      猜你喜欢
      • 1970-01-01
      • 2018-07-30
      • 2014-09-30
      • 1970-01-01
      • 2011-01-11
      • 2012-12-16
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多