Nel mio controller ho un codice simile al seguente. RedisTemplate stringRedisTemplateTest unità di controllo Come posso simulare RedisTemplate opsForValue con tipo restituito ValueOperations
def accessRedis()
{
val = stringRedisTemplate.opsForValue().get('Key')
}
Nel mio test di controllo, ho intenzione di iniettare un RedisTemplate deriso che restituiscono un ValueOperations deriso. Il mio codice:
def template = mockFor(RedisTemplate)
def val = mockFor(org.springframework.data.redis.core.ValueOperations)
val.demand.get {p-> println "$p"}
template.demand.opsForValue {
return val.createMock()
}
controller.stringRedisTemplate = template.createMock()
controller.accessRedis()
Tuttavia, ho ottenuto il seguente errore: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Impossibile il cast di oggetti'com.tnd[email protected]1aa55dd5 'con classe' com.tnd.viewport.ui.AppHawkControllerSpec $ _ $ spock_feature_0_1_closure2 'alla classe' org.springframework.data.redis.core.ValueOperations '
Potresti consigliare una soluzione per il mio scenario? Grazie!
Si prega di aggiungere una spiegazione per rendere la risposta più comprensibile. –