我正在尝试注入 WebTestClient 以使用 Spring Webflux 实现一些集成测试。
我必须加载一个使用此配置运行的 Redis 嵌入式软件:
@Configuration
@Profile("test")
public class EmbeddedRedisConfiguration {
private RedisServer redisServer;
public EmbeddedRedisConfiguration(@Value("${spring.redis.port}") int redisPort) {
this.redisServer = new RedisServer(redisPort);
}
@PostConstruct
public void postConstruct() {
redisServer.start();
}
@PreDestroy
public void preDestroy() {
redisServer.stop();
}
@Bean
@Primary
public ReactiveRedisOperations<String, Foo> redisOperations(@Qualifier("redissonConnectionFactory") ReactiveRedisConnectionFactory factory) {
Jackson2JsonRedisSerializer<Foo> serializer = new Jackson2JsonRedisSerializer<>(Foo.class);
RedisSerializationContext.RedisSerializationContextBuilder<String, Foo> builder = RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
RedisSerializationContext<String, Foo> context = builder.value(serializer).build();
return new ReactiveRedisTemplate<>(factory, context);
}
}
Run Code Online (Sandbox Code Playgroud)
运行这个类
@ExtendWith(SpringExtension.class)
@SpringBootTest
@ActiveProfiles("test")
public class FooControllerIT …Run Code Online (Sandbox Code Playgroud)