跳到主要内容
版本:7.0.3

测试

Hunyuan 7b 中英对照 Testing

当使用Spring的STOMP-over-WebSocket支持来测试应用程序时,主要有两种方法。第一种是编写服务器端测试来验证控制器及其带注释的消息处理方法的功能。第二种是编写完整的端到端测试,这涉及到运行客户端和服务器。

这两种方法并不互相排斥。相反,每种方法都在整体测试策略中占有一席之地。服务器端测试更加专注,编写和维护起来也更为容易。而端到端集成测试则更为全面,能测试更多的内容,但编写和维护的难度也相应更大。

服务器端测试的最简单形式是编写控制器单元测试。然而,这还不够有用,因为控制器的许多功能都依赖于其注释。纯粹的单元测试无法检测到这一点。

理想情况下,被测试的控制器应该像在运行时一样被调用,这与使用Spring MVC Test框架来测试处理HTTP请求的控制器的方法类似——也就是说,不需要运行Servlet容器,而是依赖Spring框架来调用带有注解的控制器。与Spring MVC Test一样,这里也有两种可选的设置方式:一种是“基于上下文”的(context-based),另一种是“独立运行”的(standalone)设置:

  • 利用Spring TestContext框架加载实际的Spring配置,将clientInboundChannel注入为测试字段,并使用它来发送需要由控制器方法处理的消息。

  • 手动设置调用控制器所需的最低限度Spring框架基础设施(即SimpAnnotationMethodMessageHandler),并将消息直接传递给它。

这两种设置场景都在股票投资组合测试示例应用程序中有所演示。

第二种方法是创建端到端的集成测试。为此,你需要以嵌入式模式运行一个WebSocket服务器,并作为WebSocket客户端连接到该服务器,发送包含STOMP帧的WebSocket消息。股票投资组合测试示例应用程序也采用了这种方法,使用Tomcat作为嵌入式WebSocket服务器,并使用一个简单的STOMP客户端来进行测试。