在Spock单元测试中绕过redis @Memoize注释

时间:2015-08-06 16:28:53

标签: grails redis spock memoization

我在Grails服务中有一个简单的方法,如下所示:

@Memoize(key = 'foo_#{text}', expire = '#{grailsApplication.config.cache.ttl}') 
String createString(String text) {
    return text + ' redis'
}

它在prod中按预期工作,并且我没有@Memoize注释的Spock单元测试通过。但是,使用注释,它们只返回null

void "createString() should create string"() {
    given:
        String text = 'foo'

    when:
        String result = service.createString(text)

    then:
        assert text + ' redis' == result // result is 'null'
}

我试着嘲笑redisService

1 * mockRedisService.memoize(_, _, _) >> someString

但这没有效果。我意识到我可能会把它变成一个集成测试,但是这个方法很简单,我不想覆盖我的redis缓存数据。

如何使测试绕过注释?

0 个答案:

没有答案