我想测试一个像Example这样处理 aContextRefreshedEvent并在处理程序方法中连接到服务器的类:
public class Example {
@EventListener
public void onApplicationEvent(ContextRefreshedEvent event) {
startWebSocketConnection();
}
// ...
}
但是在集成测试中,应用程序上下文是在 Web 套接字服务器启动并运行之前构建的,所以我收到一个异常,说连接失败(java.net.ConnectException: Connection refused: no further information在这种情况下)。
测试看起来像这样:
@ExtendWith(SpringExtension.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@SpringBootTest
public class WebSocketDataSourceTest {
@Autowired
private Example example;
@Autowired
private WebSocketServer server; // created too late
// ...
}
是否有可能以某种方式抑制ContextRefreshedEvent或推迟应用程序上下文的创建,以便 Web 套接字服务器可以在此之前启动?或者还有其他解决方案吗?
白板的微信
相关分类