[Spring]~@SpringBootTest(单元测试)

[Spring]~@SpringBootTest(单元测试)1.添加Maven依赖<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><parent><groupId>org.springfram…

大家好,又见面了,我是你们的朋友全栈君。

1. 添加Maven依赖

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
 
 
 

    2. 编写启动入口类

    @SpringBootApplication
    public class StartUpApplication { 
       
        public static void main(String[] args) {
            SpringApplication.run(StartUpApplication.class, args);
        }
    }
     
     
     

      3. 编写Controller类

      @RestController
      public class HelloController { 
         
      
          @RequestMapping("/")
          public String index() {
              return "Hello Spring Boot,Index!";
          }
      
          @RequestMapping(value = "/test", method = RequestMethod.GET)
          public String test() {
              return "Spring Boot Test Demo!";
          }
      }
       
       
       

        4. 编写测试

        @RunWith(SpringRunner.class)
        @SpringBootTest(classes = StartUpApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
        public class HelloControllerTest { 
           
        
            /** * @LocalServerPort 提供了 @Value("${local.server.port}") 的代替 */
            @LocalServerPort
            private int port;
        
            private URL base;
        
            @Autowired
            private TestRestTemplate restTemplate;
        
            @Before
            public void setUp() throws Exception {
                String url = String.format("http://localhost:%d/", port);
                System.out.println(String.format("port is : [%d]", port));
                this.base = new URL(url);
            }
        
            /** * 向"/test"地址发送请求,并打印返回结果 * @throws Exception */
            @Test
            public void test1() throws Exception {
        
                ResponseEntity<String> response = this.restTemplate.getForEntity(
                        this.base.toString() + "/test", String.class, "");
                System.out.println(String.format("测试结果为:%s", response.getBody()));
            }
         
         
         

          其中,classes属性指定启动类,SpringBootTest.WebEnvironment.RANDOM_PORT经常和测试类中@LocalServerPort一起在注入属性时使用。会随机生成一个端口号。

          总结

          我们发现,随着Spring boot 版本的提升,单元测试变得更简单了。

          版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

          发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139661.html原文链接:https://javaforall.net

          (0)
          全栈程序员-站长的头像全栈程序员-站长


          相关推荐

          • tomcat日志乱码怎么解决_linux日志中文乱码

            tomcat日志乱码怎么解决_linux日志中文乱码中文乱码大家在Windows启动Tomcat应该都会遇到中文乱码,其实也不影响使用,但是笔者看着这个乱码难受,于是提供一种较简单的解决方案。解决方案将Tomcat安装目录下/conf/logging.properties中的控制台日志编码由默认的UTF-8改为GBK即可。扩展乱码原因:Windows的控制台默认使用GB2312字符集,而Tomcat控制台日志输出默认使用UTF-8字符集,于是产生中文乱码,可使用chcp命令暂时修改控制台字符集

            2022年9月26日
            2
          • 各个刷流量软件总结对比

            各个刷流量软件总结对比1流量精灵从官网上看挂了大半天平均每个网址就可以有一千个IP(一般流量精灵只能刷三个网址,我是自己的电脑和虚拟机一起开,虚拟机只能刷两个网址)效果很理想,估计一天下来五千个IP没有问题.而实际查看一个网页的浏览量只有两三百.可见流量精灵也不过是招摇撞骗,把我们辛辛苦苦的流量都偷走了.2流量宝流量获取情况:累积在线五个小时,获取的695个IP,刷三个网…

            2022年9月29日
            2
          • Linux中公钥和私钥原理

            Linux中公钥和私钥原理原文 公钥和私钥原理一直以来对公钥和私钥都理解得不是很透彻 感觉到模棱两可 心里直打鼓呢 公钥怎么会事 私钥怎么会事 工作原理是怎么的 今天在网上找了半天 通过查看大家对这个密钥对的理解 总算弄清楚了 咱就把我的心得写出来给大家对密钥对有疑问的同志们看看 nbsp nbsp nbsp nbsp nbsp nbsp 公钥和私钥就是俗称的不对称加密方式 是从以前的对称加密 使用用户名与密码 方式的提高 我用电子邮件的方式说明一下原理 nbsp nbsp nbsp

            2025年8月18日
            3
          • IGMP协议原理与配置[通俗易懂]

            IGMP协议原理与配置[通俗易懂]组播通信中,发送者将组播数据数据发送到特定的组播地址。

            2022年9月14日
            2
          • linux命令查看所有进程_获取当前进程句柄

            linux命令查看所有进程_获取当前进程句柄查看系统默认的最大文件句柄数,系统默认是1024#ulimit-n1024查看当前进程打开了多少句柄数#lsof-n|awk‘{print$2}’|sort|uniq-c|sort-nr|more13124204 5724244  5724231  …其中第一列是打开的句柄数,第二列是进程ID。可以根据ID号来查看进程名。#psaef|grep24204…

            2022年10月17日
            3
          • Spring整合mybatis完整示例

            Spring整合mybatis完整示例Spring整合mybatis完整示例  实现功能:根据id查找用户信息。 1、首先创建一个与表中数据相对应的实体类,User.javapackagebean;publicclassUser{intid;Stringname;intage;Stringsex;Stringschool;pu…

            2022年4月29日
            30

          发表回复

          您的邮箱地址不会被公开。 必填项已用 * 标注

          关注全栈程序员社区公众号