SpringBoot单元测试的两种形式

本文介绍了SpringBoot单元测试的两种形式——SpringbootTest和Junit,探讨它们的不同之处和应用场景。SpringbootTest启动整个项目框架,适合测试接口可用性和逻辑,而Junit更专注于代码逻辑,常用于service层测试,确保代码正确性。两种方式结合使用,可以全面保障项目质量和接口稳定性。
摘要由CSDN通过智能技术生成

SpringBoot单元测试的两种形式

前言

最近公司要求2021年所有的项目代码单元测试覆盖率要达到90%,作为刚毕业的小白来说这简直就是噩梦啊,springboot都没搞清楚呢,就要上手单元测试了。组里大佬说,单元测试有下面的各种好处:

  1. 发现逻辑中遗漏的数据结构及粗心错误
  2. 发现代码逻辑中90%可能会发生但是容易被忽略的NPE错误
  3. 检测代码逻辑是否能正常运行
  4. 检测代码结果是否符合预期
  5. 发现其他错误

既然领导和大佬都这么说了,小白只能突击学习单元测试了!当然,单元测试是一个开发人员必备的技能,不仅能够提升自身的开发能力,也可以提升自身的BUG改正能力。

Junit是目前使用最广泛、最多的单元测试工具类,IDEA在创建了springboot项目之后,可以自动集成Junit,可以通过创建单元测试类来测试。

SpringbootTest是集成于Springboot中的一个单元测试工具,它可以使开发人员在测试各种接口、业务代码时不用关心外部依赖是如何注入的,只需要关心代码本身。

本文具体就展现这两种测试方式有何不同,以及总结一些个人的观点。
由于项目中有比较多的业务代码,所以特地写了一个demo,里面的代码也是能省则省,之展现了单元测试具体的表现形式,逻辑方面还请大家多担待!

demo环境

使用的springboot项目,junit4,因为懒所以用的jpa没有用mybatis,但是用法还是那个用法。测试的项目数据库中没有数据。项目分为controller、dao、entity、service,下面是各层的代码,按介绍顺序放出各层对应的demo:

controller:

/**
 * 创建时间:2021/1/7 11:32
 * 单元测试控制类
 * @author wyb
 */
@RestController
@RequestMapping("/student")
public class TestDemoController {
   

	@Resource
	private TestDemoService testDemoService;

	@GetMapping("/list")
	public List<Student> list(StudentQuery studentQuery){
   
		return testDemoService.isExist(studentQuery);
	}
}

dao:

/**
 * 创建时间:2021/1/7 11:38
 *
 * @author wyb
 */
@Repository
public interface StudentProperty extends JpaRepository<Student,Integer> {
   

	/**
	 * 根据姓名模糊查找student
	 * @param name 姓名
	 * @return
	 */
	List<Student> findByNameLike(String name);
}

entity:

@Entity
@Table(name="student")
public class Student {
   

    @Id
    private Integer uid;

    @Column(name = "name")
    private String name;

    @Column(name = "age")
    private Integer age;

    @Column(name = "remarks")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值