Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

474
Visualizações
Simulacro de plantilla redis

Estoy enfrentando un problema en la plantilla de redis simulada. ¿Alguien puede ayudarme a escribir una prueba unitaria para la siguiente clase?

 @Repository public class CasheRepo { @Autowired private RedisTemplate<String, Object> template; public Object getObject(final String key) { return template.opsForValue().get(key); } }

Y debajo está la clase de prueba unitaria. Pero no está funcionando. Muestra excepciones de puntos nulos.

 @RunWith(MockitoJUnitRunner.class) public class CashRepoTest { @InjectMocks private CasheRepo casheRepo = new CasheRepo(); private @Mock RedisConnection redisConnectionMock; private @Mock RedisConnectionFactory redisConnectionFactoryMock; private RedisTemplate redisTemplate; @Before public void setUp() { Mockito.when(redisConnectionFactoryMock.getConnection()).thenReturn(redisConnectionMock); redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(redisConnectionFactoryMock); redisTemplate.afterPropertiesSet(); } @Test public void getObjectTest() { Mockito.doNothing().when(redisTemplate).opsForValue().set("spring", "data"); redisTemplate.afterPropertiesSet(); System.out.println(redisTemplate.opsForValue().get("spring")); } }
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

puedes burlarte de redisTemplate así:

 @Mock RedisTemplate<String, String> redisTemplate; @Mock private ValueOperations valueOperations; @Before public void setUp() { MockitoAnnotations.initMocks(this); Mockito.when(redisTemplate.opsForValue()).thenReturn(valueOperations); Mockito.doNothing().when(valueOperations).set(anyString(), anyString()); }
over 4 years ago · Santiago Trujillo Relatório

0

Está creando redisTemplate a través del constructor, y DI no lo obtuvo. Intenta usar la anotación @Spy:

 @Spy private RedisTemplate redisTemplate = new RedisTemplate();

Permitirá que DI inyecte su instancia de RedisTemplate.

over 4 years ago · Santiago Trujillo Relatório

0

Para aquellos que quieran hacer lo mismo con HashOperations get() y put()

 @Mock RedisTemplate<String, String> redisTemplate; @Mock private HashOperations hashOperations; @Test void getFromCache() { Mockito.when(redisTemplate.opsForHash()).thenReturn(hashOperations); when(hashOperations.get("test-key", "test-hash-key")).thenReturn("value123"); RedisCacheServiceImpl cacheService = new RedisCacheServiceImpl(redisTemplate); assertEquals("value123", cacheService.getFromCache("test-key", "test-hash-key")); }

Espero que te ayude ;)

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda