我们在开发过程中 可以对数据层 业务层做测试 那我们的表现层能做测试吗?
答案自然是可以的
但是 前提 我们要有一个web环境
我们现在 测试类运行 明显是个很普通的java程序
还是这个 SpringBootTest 它有一个 webEnvironment
我们可以先这样写
package com.example.webdom;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
public class WebDomApplicationTests {
@Test
void contextLoads() {
}
}
我们再次运行
会发现还是一样的 这是因为 NONE 就是不起用的意思
我们可以这样写
package com.example.webdom;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class WebDomApplicationTests {
@Test
void contextLoads() {
}
}
DEFINED_PORT的意思是 设置端口 意思是 你配置文件写的什么端口 我就运行到什么端口上去
然后 我们再次运行测试方法
这会儿 它输出的东西就和我们之前web服务启动的输出如出一辙了
因为我配置文件配置的 80 它也运行在了 80端口上
还有一种
package com.example.webdom;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class WebDomApplicationTests {
@Test
void contextLoads() {
}
}
RANDOM_PORT表示 随机端口 它给你运行到什么端口 这是不一定的