赞
踩
为什么学了 Selenium 还要学 JUnit?
1、JUnit5 是单元测试框架,拿着一个技术写自动化测试用例(Selenium3)
2、Selenium 是自动化测试框架,拿着一个技术管理已经编写好的测试用例(JUnit5)
JUnit 是针对 java 的一个单元测试框架。
主要核心学习的“注解”:
@Test 注解这里的方法需要注意的是需要用 public,如果写出其他会报错
public class JunitTest {
@Test
public void Test01() {
System.out.println("这是一个测试用例");
}
}
@ Disabled
其他注解类似,不再赘述
注意:在这些注释中需要导入的是同一个包,如果导入的包不正确也会报错,这是容易出错的地方,而且出来问题,程序也是不会提示错误的。
首先导入依赖:
参数化分为:
1、单独参数
@ParameterizedTest
@ValueSource(ints = {1, 2, 3})
void Test04(int num) {
System.out.println(num);
}
2、CSV获取参数(需要创建csv文件在 Resource 目录下)
@ParameterizedTest
@CsvFileSource(resources = "test01.csv")
void Test05(String name) {
System.out.println(name);
}
3、方法获取参数
@ParameterizedTest
@MethodSource("Generator")
void Test07(int num, String name) {
System.out.println(num + ":" + name);
}
public static Stream<Arguments> Generator() {
return Stream.of(Arguments.arguments(
1, "张三",
2, "李四"
));
}
4、多参数
这里面 @CsvSource 里面的参数是不确定什么类型的,只有下面方法传参的时候才能确定类型
@ParameterizedTest
@CsvSource({"1,2,3,''"}) // 需要在方法里面传递类型参数,才能确定死什么类型
void Test08(String x,int y,String z,String q) {
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(q);
}
注意:传 空 字符串的时候,只能用 String 类型。
再次强调,里面的依赖需要导入正确,如果发现语法都没有问题报错,就可以是依赖导入的不对,可以检查一下依赖是否导入正确
这里需要用的的注解是 @TestMethodOrder(MethodOrderer.OrderAnnotation.class) ,然后再 @Test 方法加上 @Order(执行顺序)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class JunitTest02 { @Order(3) @Test public void A() { System.out.println("这是测试用例A"); } @Order(1) @Test public void B() { System.out.println("这是测试用例B"); } @Order(2) @Test public void C() { System.out.println("这是测试用例C"); } }
另外还有个注解 @TestMethodOrder(MethodOrderer.Random.class) 这是随机注解,随机指定顺序的,与@Order()里面参数指定的顺序没有任何关系。
// 断言不相等
Assertions.assertNotEquals(1,num);
//断言相等
Assertions.assertEquals(1,num); // (预期结果,实际结果)
// 断言为null
String str = null;
Assertions.assertNull(str);
// 断言不为null
String str = "null1";
Assertions.assertNull(str);
其他方法也是类似,利用 Assertions类找到对应的方法。
核心注解:
1、 @Suite (使用套件必须加这个);
2、@SelectClasses();
3、@SelectPackages()
//@SelectClasses({JunitTest.class,JunitTest03.class,JunitTest02.class}) // 通过class测试用例运行
@Suite
@SelectPackages({"JunitPackage02","JunitPackage01"}) // 通过包选择
public class RunSuite {
}
使用方法 @Suite && @Select…
注意:指定包添加套件的前提
1、所有类文件的命名都要以 Test、Tests 结尾;
2、所有的测试单元都要使用 @Test 注解
提醒:特别注意依赖的导入,肯能出现报错的地方是因为导入的依赖不对
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。