小豆子的笔记QAQ

导航

Junit单元测试入门点

自己领悟的一点单元测试知识

1、将开发提供的源代码,使用iade和maven,加载进去

2、查看代码,我们可以看到一些东西:

a、该代码的开发环境:spring Framework

b、代码分层:interface(接口)和service(服务),interface中定义了该模块的一些封装的功能接口;service中写了该模块所有的功能实现

c、我们的单元测试主要是service,分解主要功能:

  1、action  模块功能函数的封装

  2、service  功能函数的逻辑

  3、dao  功能函数的数据库实现

d、写service的单元测试,即ervice/service中的函数

  1、在源代码main,创建同一层的test文件

  2、按照源代码的样式,创建分层结构。注意resource文件,一般直接复制过来即可。但是如果你要修改一些里面的东西,如:数据库你害怕单元测试弄坏开发环境,你可以修改数据库的配置,将他设置为你本地的数据库。他会按照你设置的写库

  3、具体的用例编写。首先应该在class前面增加

@SpringBootTest(classes = SysApplication.class)
这个注解的意思会自动加载上下文的服务,所以我们不用特有去写连数据库的等在用例中,他用到的时候,会直接调用的。是不是很智能~
class里面是说明了一个启动模块。如果不指定的话,默认读取一个最近的,所以可能会出错,一般一个系统,启动模块是同一个。一般放在main函数中。
@Autowired
这个注解是和@SpringBootTest一起使用,表示加载某一个服务。一般是你写的那个服务,以及相关联的服务

@test
这个注解,是表示这是一个测试用例。可以直接执行

@beforeEach
这个注解,是表示在执行每个测试用例之前,需要执行;相当于RF中的test setup
@beforeAll
这个注解,是表示在执行每个测试集之前,需要执行;相当于RF中的suit setup 
对应的有 @aftereach和@afterall
测试用例模板:
@before xx
@after xx
测试名
{
创建一个结构体
赋值该结构体(按照需要实现函数的参数进行结构体的赋值)
调用函数
若函数有返回值,需要对返回值写断言;若无,不需要写断言
}
以上是最简单的一个用例模板。写了前置条件和执行,以及执行完之后的处理;
单元测试主要侧重的是对逻辑的一种判断,故对字符长度啊,异常输入等不需要考究,若代码中有写长度什么的控制,那么需要测试,若没有规定,说明这些均在action中封装定义了。action中的封装,一般在接口测试中实现
用例侧重点:
结构体的数据的多样化采集,可以使用excel、yaml、或者直接读库的方式实现
异常用例的设计,如一些异常的输入,程序正常是要异常抛出,那么用例就需要在特殊处理


posted on 2021-04-29 16:03  小豆子的笔记QAQ  阅读(71)  评论(0编辑  收藏  举报