针织厂家东莞网站建设,中国建设银行官网站大同,网站建设大学,网站设计开发团队一.Junit的含义
Junit是一种Java编程语言的单元测试框架。它提供了一些用于编写和运行测试的注释和断言方法#xff0c;并且可以方便地执行测试并生成测试报告。Junit是开源的#xff0c;也是广泛使用的单元测试框架之一
二.Junit项目的创建
#xff08;1#xff09;先创…一.Junit的含义
Junit是一种Java编程语言的单元测试框架。它提供了一些用于编写和运行测试的注释和断言方法并且可以方便地执行测试并生成测试报告。Junit是开源的也是广泛使用的单元测试框架之一
二.Junit项目的创建
1先创建一个 普通的maven项目 2然后在pom.xml文件里添加一些Junit的一些相关依赖 dependencies!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --dependencygroupIdorg.seleniumhq.selenium/groupIdartifactIdselenium-java/artifactIdversion3.141.59/version/dependency!-- https://mvnrepository.com/artifact/commons-io/commons-io --dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.11.0/version/dependency!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.9.1/version/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-params/artifactIdversion5.9.1/version/dependency!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params --dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-params/artifactIdversion5.9.1/version/dependencydependencygroupIdorg.junit.platform/groupIdartifactIdjunit-platform-suite/artifactIdversion1.9.1/versionscopetest/scope/dependency!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite --dependencygroupIdorg.junit.platform/groupIdartifactIdjunit-platform-suite/artifactIdversion1.9.1/version/dependency!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine --dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-engine/artifactIdversion5.9.1/versionscopetest/scope/dependency/dependencies 三.Junit常用注解
1.Test 表示执行此测试用例使用Test框架我们不需要在类里创建mian方法然后在main方法里调用测试方法可以直接在类里定义测试方法 Testvoid test1(){System.out.println(执行测试用例1);}
2.disabled 表示不执行此测试用例 3.BeforeAll AfterAll BeforeEach AfterEach
(1)BeforeAll 在所有的测试用例执行之前开始执行且只执行一次因此它的方法应该是属于类的是一个静态方法。 (2)AfterAll 在所有测试用例执行之完开始执行且只执行一次因此它的方法也是属于类方法是一个静态方法。 (3)BeforeEach在每个测试用例执行前开始执行 BeforeEachvoid beforeeach(){System.out.println(这是beforeeach的语句);}
(4)AfterEach在每个测试用例执行完执行
AfterEachvoid aftereach(){System.out.println(这是aftereach语句);} 三.junit参数传递
1.单种类型的参数
第一个注解ParameterizedTest此注解作用在方法上表示此方法支持多个传入多个参数
第二个注解ValueSource()此注解表示传入一组同类型的数据例如ints{1,2,3}表示传入一组int类型的数据strings{小明,小凯}表示传入一组string类型的数据 但是这种方式只能传递一种类型的参数如果我们传多种参数就会报错
2.多种类型的参数
1Csv
注解CsvSource({第一组数据,第二组数据}不同组数据之间用逗号分割
一组数据 多组数据 2Csv文件
读取文件里的参数文件里面的参数以逗号分割
CsvFileSource(resources文件名)
在resources底下建立一个test7.csv文件 2.方法
MethodSource(方法名)
定义一个静态方法返回类型为Stream对象内部调用Stream.of()方法
si
3.测试套件 注解Suite
(1)通过类名运行测试用例
SelectClasses()括号里面用于指定类名 2 通过包名运行测试用例
SelectPackagesvalue )用于指定包名 注意包名底下的测试类必须是XXXTest的格式且Suittest这个类不能在要指定的包名底下 指定单个包名 指定多个包名 四.assert断言
只有断言通过测试用例才通过,
1.Assertions.assertEquals(期待值真实值)当期待值和真实值一样时测试用例才通过当期待值和真实值不一样时会抛出异常 2. Assertions.assertNotEquals(期待值真实值)当期待值和真实值不一致时测试用例才通过否则会抛出异常 ParameterizedTestValueSource(ints{2})void test6(int num){Assertions.assertNotEquals(1,num);} 3. . Assertions.assertNull(num)只有num为null时测试用例才通过否则会抛出异常 五.测试用例执行的顺序 大家来想一个问题这三个测试用例那个先执行是按一定照从上到下的顺序吗
其实不是的junit有自己的一套执行顺序的算法
但我们可以自己指定其测试用例执行顺序
(1)按照自己指定的顺序执行测试用例 (2) 按照任意顺序执行测试用例