我在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缓存数据。
如何使测试绕过注释?