使用redis的Spring会话 – 如何在集成测试中模拟它?
作者:互联网
所以,我在我的项目中使用spring session.
如何使用它在项目中编写集成测试?我应该为春季会议内部模拟一些东西吗?或者使用嵌入式redis的任何合理方式?
我看到过去有一些@EnableEmbeddedRedis注释,但似乎已被删除:https://github.com/spring-projects/spring-session/issues/248
//编辑
我试过通过MockHttpSession
mockMvc.perform(post("/register").session(mockHttpSession)
但春天尝试并且无论如何都无法连接到redis.
解决方法:
您可以创建自己的connectionfactory和redisserializer.然后spring boot将不会创建默认bean.
例:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
public class ApplicationTest
{
@Test
public void contextLoads()
{
}
@EnableRedisHttpSession
@Configuration
static class Config
{
@Bean
@SuppressWarnings("unchecked")
public RedisSerializer<Object> defaultRedisSerializer()
{
return Mockito.mock(RedisSerializer.class);
}
@Bean
public RedisConnectionFactory connectionFactory()
{
RedisConnectionFactory factory = Mockito.mock(RedisConnectionFactory.class);
RedisConnection connection = Mockito.mock(RedisConnection.class);
Mockito.when(factory.getConnection()).thenReturn(connection);
return factory;
}
}
}
标签:spring,spring-session 来源: https://codeday.me/bug/20190722/1504004.html