gpt4 book ai didi

Spring session with redis - 如何在集成测试中模拟它?

转载 作者:行者123 更新时间:2023-12-02 06:49:03 25 4
gpt4 key购买 nike

所以,我在我的项目中使用 spring session 。如何使用它在项目中编写集成测试?我应该模拟 Spring session 内部的某些东西吗?或者有什么合理的方式来使用嵌入式redis?

我看到过去有一些@EnableEmbeddedRedis注释,但似乎已被删除:https://github.com/spring-projects/spring-session/issues/248

//编辑

我尝试将 MockHttpSession 传递给

mockMvc.perform(post("/register").session(mockHttpSession)

但是 spring 尝试连接到 redis 但失败了。

最佳答案

您可以创建自己的连接工厂和重新序列化器。那么 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 session with redis - 如何在集成测试中模拟它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com