为了Spring Boot进行测试,它@SpringBootTest与SpringBootTest.WebEnvironment枚举一起使用。好吧,根据javadoc,它有4个值。
此外,我已经阅读了“ 测试Spring Boot应用程序”部分
对我来说,很清楚,这NONE是仅MOCK测试服务器端,并通过Web端测试所有服务器端(以解决Spring MVC Test)。直到这里我还好。我都用。
其他两个:RANDOM_PORT和DEFINED_PORT与有关to start a full running server,它与“ 正在运行服务器的测试”部分(该部分开头的第一段)一致
两个问题:
full running server?一起使用?RANDOM_PORT或DEFINED_PORT?如果要测试应用程序,通常会使用一台运行中的服务器,因为它将在生产中使用。对于运行中的服务器,您可以通过TCP网络连接向服务器发出HTTP请求。这涉及测试中的网络堆栈和servlet容器。相比之下,当您使用Spring MVC测试时,DispatcherServlet将直接通过模拟请求调用Spring Framework的。不涉及网络堆栈和servlet容器。
DEFINED_PORT表示您的服务器将在TCP套接字上侦听特定端口上的HTTP请求。默认情况下,它是8080。如果您在不知道特定端口是否可用的环境中进行测试,则由于端口冲突而导致测试失败。
RANDOM_PORT表示您的服务器将在操作系统分配的端口上启动,并保证可用。Spring Boot通过使用@LocalServerPort测试类中的字段上的注释使此端口对您的应用程序可用。它还会自动配置默认TestRestTemplate实例以使用此端口。
| 归档时间: |
|
| 查看次数: |
2508 次 |
| 最近记录: |