使用这些注释时,使用没有Websockets的Jetty进行Spring集成测试没有问题:
@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration( classes = { ApplicationConfig.class } )
@WebAppConfiguration
当我将Websockets添加到Jetty中时,无法使用此方法。
此repo显示websocket集成测试适用于Tomcat但不适用于Jetty:
https://github.com/isopov/mockmvc-test-websocket
问题似乎是因为Spring的MockServletContext没有实现Jetty的ContextHandler.Context。
https://jira.spring.io/browse/SPR-16263
完整的讨论可以在这里找到:
https://github.com/spring-projects/spring-boot/issues/7487
显然可以通过启动Jetty而不是使用mockmvc来进行Jetty websocket测试:
https://github.com/spring-projects/spring-boot/issues/7487#issuecomment-375426956
如何在没有mockmvc的情况下使用SpringJUnit4ClassRunner?
詹姆斯