专栏首页用户6517667的专栏springboot 单元测试

springboot 单元测试

来源:http://www.51testing.com/

之前开发测试程序功能时,采取的都是通过连接访问来测试程序,常用的方法有:

  1、直接通过在浏览器输入网址访问;

  2、通过公司搭建的eolinker来进行访问测试;

  3、通过编写python脚本来进行测试;

  4、通过postman工具来测试。

  但这样经常会一测就要测一整块,相对单元测试来说定位问题比较麻烦,单元测试能帮助我们拆分方法,单独测试些关键的代码、功能,是日常开发中必备的技能,同时也是各大公司招技术人员的必要要求之一。但今天看了不少文章,也试了不少,发现即是很简单的东西自己也走了不少弯路,所以觉得很有必要把今天的练习写下来。

1、首先是pom.xml的包

<!-- test依赖,必须添加 -->  <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-test</artifactId>  </dependency>

 2、下面分别是controller层,service层,jpaRepository层

  DemoController.class类

package com.test.demo.controllers;  import com.test.demo.domain.entities.Address;  import com.test.demo.domain.entities.AddressRepository;  import com.test.demo.services.DemoService;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.web.bind.annotation.RequestMapping;  import org.springframework.web.bind.annotation.RequestParam;  import org.springframework.web.bind.annotation.RestController;  import java.util.List;  @RestController  @RequestMapping("/hello")  public class DemoController {  @Autowired  private DemoService demoService;  @Autowired  private AddressRepository addressRepository;  /**  * RequestParam 参数里面的name和value的效果是一样的  * RequestMapping 参数里面就只能是value了,  * @param name  * @return  */  @RequestMapping(value = "/queryaddress")  public String demo(@RequestParam(name = "name")String name){  List<Address> addressList = demoService.queryAddress("%"+name+"%");  System.out.println(addressList.toString());  return addressList.toString();  }  }

DemoService.class类

package com.test.demo.services;  import com.test.demo.domain.entities.Address;  import com.test.demo.domain.entities.AddressRepository;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.stereotype.Service;  import java.util.List;  @Service  public class DemoService {  @Autowired  private AddressRepository addressRepository;  /**  * 根据名称查找地区  * @param name  * @return  */  public List<Address> queryAddress(String name){  return addressRepository.queryListByName(name);  }  }

 AddressRepository.class类

package com.test.demo.domain.entities;  import org.springframework.data.jpa.repository.JpaRepository;  import org.springframework.data.jpa.repository.Query;  import java.util.List;  public interface AddressRepository extends JpaRepository<Address, Integer>{  /**  * 根据地区查找数据  * @param name  * @return  */  @Query(value = "select * from address where address like ?",nativeQuery = true)  List<Address> queryListByName(String name);  }

 3、下面是新建测试类

package com.test.demo.controllers;  import com.test.demo.Main;  import com.test.demo.domain.entities.Address;  import com.test.demo.domain.entities.AddressRepository;  import com.test.demo.services.DemoService;  import org.junit.Test;  import org.junit.runner.RunWith;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.boot.test.SpringApplicationConfiguration;  import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  import java.util.List;  @RunWith(SpringJUnit4ClassRunner.class)  @SpringApplicationConfiguration(classes = Main.class)//扫描启动类  public class DemoTest {  @Autowired  private AddressRepository addressRepository;  @Autowired  private DemoController demoController;  @Autowired  private DemoService demoService;  /**  * 查找地址  * 访问addressRepository层  */  @Test  public void query() {  System.out.println("===访问addressRepository层====");  List<Address> lst = addressRepository.queryListByName("%我%");  System.out.println(lst.size());  if (lst.size() > 0) {  for (Address ad : lst) {  System.out.println(ad.toString());  }  }  }  /**  * 查找地址,访问controller层  */  @Test  public void queryAddress(){  System.out.println("===访问controller层====");  String str = demoController.demo("%我%");  System.out.println(str);  }  /**  * 查找地址,访问service层  */  @Test  public void queryServiceAddress(){  System.out.println("===访问service层====");  List<Address> lst = demoService.queryAddress("%我%");  System.out.println(lst.size());  if (lst.size() > 0) {  for (Address ad : lst) {  System.out.println(ad.toString());  }  }  }  }

  测试:

  点击红箭头所指位置,可以进行想应的测试:

  测试结果:

欢迎参加众测:

https://wap.ztestin.com/site/register?usercode=FAAAQwMQGAAXAwQBA3QhExcDHAQDPjVaABMIQg%3D%3D

本文分享自微信公众号 - 软件测试培训(iTestTrain),作者:软件测试培训

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • kylinPET

    https://wap.ztestin.com/site/register?usercode=FAAAQwMQGAAXAwQBA3QhExcDHAQDPjVaA...

    小老鼠
  • springboot之单元测试

    https://wap.ztestin.com/site/register?usercode=FAAAQwMQGAAXAwQBA3QhExcDHAQDPjVaA...

    小老鼠
  • 怎样对 RPC 进行有效的性能测试

    在 RPC Benchmark Round 1 中 turbo 的成绩一骑绝尘,实力碾压众 rpc 框架。对此,很多人表示不服气,认为作者既是运动员又是裁判员有...

    小老鼠
  • idea创建Springboot+mybatis+mysql

    项目开始生成,界面右下角回弹出一个小方框,点击Enable Autop-Import ,idea 会自动下载jar包,时间比较长 (5分钟左右)

    用户4478423
  • 网页性能监控利器---Performance

    作为前端工程师,无论是业务需要还是我们对于自己开发的Web站点的要求,往往都有性能监测以及数据上报的需求。而Performance API除了简单易用对前端工程...

    IMWeb前端团队
  • 这门MIT最火的课程究竟是什么来头?

    大数据文摘
  • 网页性能监控利器---Performance

    本文作者:IMWeb went 原文出处:IMWeb社区 未经同意,禁止转载 一、性能监测&数据上报 作为前端工程师,无论是业务需要还是我们对于自己开...

    IMWeb前端团队
  • Ubuntu 18.04安装OpenCV4.0和环境配置

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明...

    zhangrelay
  • 一个eos dapp的区块链小游戏开发学习笔记

    rectinajh
  • PHP 中文域名 和 Punycode 相互转码

    国际化域名(英语:Internationalized Domain Name,缩写:IDN)

    Alone88

扫码关注云+社区

领取腾讯云代金券