java springboot在测试类中启动一个web环境

我们在开发过程中 可以对数据层 业务层做测试 那我们的表现层能做测试吗?
答案自然是可以的
但是 前提 我们要有一个web环境
我们现在 测试类运行 明显是个很普通的java程序
java springboot在测试类中启动一个web环境_第1张图片
还是这个 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() {

    }

}

我们再次运行
java springboot在测试类中启动一个web环境_第2张图片
会发现还是一样的 这是因为 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的意思是 设置端口 意思是 你配置文件写的什么端口 我就运行到什么端口上去
然后 我们再次运行测试方法
java springboot在测试类中启动一个web环境_第3张图片
这会儿 它输出的东西就和我们之前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表示 随机端口 它给你运行到什么端口 这是不一定的
java springboot在测试类中启动一个web环境_第4张图片

你可能感兴趣的:(java,spring,boot,前端)