Junit是一个开源的java语言的单元测试框架。
一.注解
1.@Test 表示一个方法/用例
2.表示被注解方法在其他方法之前
@BeforeEach 在其他方法执行之前都要执行一遍
@BeforeAll其他方法执行之前只需要执行一遍
且使用@Before注解的方法必须定义为static
3.表示被注解方法在其他方法之后
@AfterEach在其他方法执行之后都要执行一遍
@AfterAll其他方法执行之前只需要执行一遍
二.断言
自动化测试,判断测试结果是否正确。
assertEquals(expect,actual) 检验期望值和实际值是否匹配。
assertNotEquals(expect,actual) 检验期望值和实际值是否·不匹配。
assertTrue(),assertFalse() 参数表达式,参数为boolean类型。
assertNull() 检验是否为空值。
assertNotNull() 检验是否不是空值。
三.用例执行顺序
Junit的默认执行顺序不确定,下列执行顺序是通过Junit提供的方法手动设置的执行顺序。
为什么需要用到Junit中的排序方法?
在编写用例时要尽量保持用例的独立性,但是用例之间如果存在关联关系时,就需要手动的指定用例的执行顺序。
1.方法的排序--通过@order注解来排序。
标注当前类使用方法进行排序:
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
标注具体的排序顺序:
@Order(1) @Order(2)
四.参数化
@ParameterizedTest 标注方法类型为参数化。
(添加了@ParameterizedTest注解之后就不需要添加@Test注解,如果添加就会再执行一遍)
需要添加参数来源
1.单参数
@ValueSource(类型={参数1,参数2,……})
2.多参数
@CsvSource(value = {参数1,参数2,……})
参数之间默认的分隔符是","。
也可以手动指定如"-" 但是需要在{}后添加delimiterString = "-"。
3.多参数
参数如果非常多,写起来会非常复杂,可以采用文件注入的方式。
@CsvFileSource(resource = "指定文件路径")
1)文件路径为当前项目下resource文件中的.csv文件。
2)文件路径为本地路径下的.csv文件。
4.动态参数
1)单参数
@MethodSource(方法名) 不指定方法名时,会调用与它同名的静态方法
、、
2)多参数
五.测试套件Suite注解
将所有的用例执行起来。
1.指定类,添加到套件中并执行。
2.执行包,添加到套件中并执行。
执行包下面所有的以Test命名的文件中的所有@Test注解的用例。