专业做婚纱摄影网站,友情链接的四个技巧,网站开发 验收移交,百度录入网站Junit 是一个用于 Java 编程语言的单元测试框架#xff0c;Selenium是自动化测试框架#xff0c;专门用于Web测试
本篇博客介绍 Junit5 文章目录 Junit 使用语法注解参数执行顺序断言测试套件 Junit 使用
本篇博客使用 Idea集成开发环境
首先#xff0c;创建新项目#…Junit 是一个用于 Java 编程语言的单元测试框架Selenium是自动化测试框架专门用于Web测试
本篇博客介绍 Junit5 文章目录 Junit 使用语法注解参数执行顺序断言测试套件 Junit 使用
本篇博客使用 Idea集成开发环境
首先创建新项目注意选择 Maven 创建新类 —— JunitTest 使用 Junit 相关语法需要添加依赖 在 pom.xml 中添加相关依赖 相关依赖可以从Maven官网获取
dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.9.1/version
/dependency注意重新加载 Maven下载相应的包 至此就可以使用基本的 Junit 语法 语法
注解
Junit 使用注解来定义测试用例设置测试环境和执行一些操作
Test 标记一个方法为测试方法。JUnit 会自动识别并执行这个方法。 点击特定测试用例左侧的运行图标可以只执行该测试用例如 Test01 和 Test02 左侧的图标 点击 JunitTest 类旁边的图标会执行该类中的所有测试用例 Disabled 使用该注解执行全部测试用例时会跳过执行该测试用例 BeforeAll 使用该注解的方法要是 static 使用该注解的方法会在所有测试用例执行前执行不论是单个执行还是全部执行 AfterAll 使用该注解的方法要是 static 使用该注解的方法会在所有测试用例执行后执行不论是单个执行还是全部执行 BeforeEach 使用该注解的方法会在每个测试用例执行前执行 AfterEach 使用该注解的方法会在每个测试用例执行后执行
参数
使用参数需要引入依赖
!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params --
dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-params/artifactIdversion5.9.1/version
/dependency使用参数要带上ParameterizedTest
单参数
使用ValueSource指定测试用例
ParameterizedTest
ValueSource(ints {1, 2, 3})
void Test04(int num){System.out.println(Test04 num num);
}因为有3个参数所以会执行三次 同样也可以传字符串
ParameterizedTest
ValueSource(strings {1, 2, 3})
void Test05(String str){System.out.println(Test05 string str);
}CSV多参数
通过 指定多个参数多组参数用分割
ParameterizedTest
CsvSource({张三, 20, 男,李四, 24, 男,田六, 18, 女})
void Test08(String name, int age, String gender){System.out.println(姓名: name 年龄: age 性别: gender);
}通过CSV文件获取参数
Junit规定通过文件传参的文件后缀必须以.csv结尾 一行为一次测试用例输入 test01.csv 测试代码
ParameterizedTest
CsvFileSource(resources test01.csv)
void Test06(String name) {System.out.println(name);
}通过方法获取参数 多参数
public static StreamArguments Generator() {return Stream.of(Arguments.arguments(1, 张三),Arguments.arguments(2, 李四),Arguments.arguments(3, 王五));
}
ParameterizedTest
MethodSource(Generator)
void Test07(int num, String name){System.out.println(num : name);
}执行顺序
不指定执行顺序的情况下除了 Before 和 After 系列其他测试用例的执行顺序根据不同解释器不同的算法会有不同的执行顺序。 不过我们也可以指定执行顺序 方法是在测试类使用注释TestMethodOrder然后在测试用例使用Order
TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class JunitTest {Order(1)Testvoid Test01(){System.out.println(这是JunitTest里面的Test01);}Order(3)Testvoid Test02(){System.out.println(这是JunitTest里面的Test02);}Order(2)ParameterizedTestValueSource(ints {1, 2, 3})void Test04(int num){System.out.println(Test04 num num);}
}通过Order指定顺序
断言
断言用于验证测试结果是否符合预期。JUnit 提供了多种断言方法可以用于检查值是否相等是否为真是否为假等。
以下是常用的断言方法
常用断言方法
assertEquals(expected, actual) 检查两个值是否相等第一个参数是预期值第二个是实际值
import static org.junit.Assert.assertEquals;
Test
public void Test() {int sum 2 3;Assertions.assertEquals(6, sum); // 验证 2 3 是否等于 6
}结果当然是错误的运行结果会打印出预期值和实际值方便调试
assertTrue(condition) 检查条件是否为真
import static org.junit.Assert.assertTrue;Test
public void testIsPositive() {int number 10;Assertions.assertTrue(number 0); // 验证 number 是否大于 0
}assertNull(object) 检查对象是否为 null
import static org.junit.Assert.assertNull;Test
public void testObjectIsNull() {Object obj null;Assertions.assertNull(obj); // 验证 obj 是否为 null
}assertArrayEquals(expectedArray, actualArray) 检查两个数组是否相等
import static org.junit.Assert.assertArrayEquals;Test
public void testArrayEquality() {int[] expected {1, 2, 3};int[] actual {1, 2, 3};Assertions.assertArrayEquals(expected, actual); // 验证两个数组是否相等
}上述方法都有相反的断言如 assertEquals 相反的为 assertNotEquals
测试套件
要使用测试套件需要添加如下两个依赖
!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite --
dependencygroupIdorg.junit.platform/groupIdartifactIdjunit-platform-suite/artifactIdversion1.9.1/version
/dependency
dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-engine/artifactIdversion5.9.1/versionscopetest/scope
/dependency测试套接(Test Suite) 是一个用于组织和运行多个测试用例的集合。在软件测试中测试套件通常用于将相关的测试用例结合在一起以便能够方便地执行和管理 测试套件的定义 测试套件 是一组测试用例的集合可以是一个或多个测试类的集合。通过使用测试套件可以一次性运行所有相关的测试用例而不需要逐个运行。测试套件通常用于集成测试或系统测试可以确保应用程序的不同部分能够协同工作。 使用测试套件的好处 组织性将相关测试组织在一起便于管理和维护。效率可以一次性运行多个测试节省时间。可重用性可以在不同的测试环境中重用测试套件。可读性提高代码的可读性使测试代码结构更加清晰。 介绍两种最常用的测试套件
根据 Class 运行
需要在测试类上添加注释Suite和SelectClasses
Suite
SelectClasses({Test02.class, Test01.class})
public class RunTest {}上述代码表示先运行 Test02 的测试用例再运行 Test01 的测试用例
根据 Package 运行
需要在测试类上添加注释Suite和SelectClasses
目录结构如下
测试套件如下
Suite
SelectPackages(value {package1, package2})
public class RunTest {}以上就是本篇博客的所有内容感谢你的阅读 如果觉得本篇文章对你有所帮助的话不妨点个赞支持一下博主拜托啦这对我真的很重要。