做网站市场报价,wordpress中文英文切换,是不是做推广都得有网站,招标项目怎么查询Junit是Java的单元测试框架提供了一些注解方便我们进行单元测试
1. 常用注解
常用注解#xff1a;
TestBeforeAll#xff0c;AfterAllBeforeEach#xff0c;AfterEach
使用这些注解需要先引入依赖#xff1a;
dependencygroupIdorg.junit.jupiter…Junit是Java的单元测试框架提供了一些注解方便我们进行单元测试
1. 常用注解
常用注解
TestBeforeAllAfterAllBeforeEachAfterEach
使用这些注解需要先引入依赖
dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.9.1/versionscopetest/scope
/dependency
1.1 Test
Test用于方法表示该方法是一个测试方法 添加上Test注解可以看到左边出现了绿色三角形点击可运行对应方法点击类名左边的则是运行类中的所有测试方法。
1.2 BeforeAll AfterAll
BeforeAll注释的方法会在该类中的所有测试方法执行前执行
AfterAll注释的方法会在该类中所有测试方法执行后执行
被这两个注解注释的方法只能声明为静态方法
public class JunitTest {Testvoid test01() {System.out.println(test01);}Testvoid test02() {System.out.println(test02);}BeforeAllstatic void beforeAll() {System.out.println(BeforeAll);}AfterAllstatic void afterAll() {System.out.println(AfterAll);}
} 1.3 BeforeEach AfterEach
BeforeEach注释的方法会在该类中的每个测试方法执行前都执行一次
AfterEach注释的方法会在该类中每个测试方法执行后都执行一次
public class JunitTest {Testvoid test01() {System.out.println(test01);}Testvoid test02() {System.out.println(test02);}BeforeAllstatic void beforeAll() {System.out.println(BeforeAll);}AfterAllstatic void afterAll() {System.out.println(AfterAll);}BeforeEachvoid beforeEach() {System.out.println(BeforeEach);}AfterEachvoid afterEach() {System.out.println(AfterEach);}
} 2. 指定测试用例执行顺序
TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class JunitTest {Order(2)Testvoid test01() {System.out.println(test01);}Order(1)Testvoid test02() {System.out.println(test02);}
} 3. 参数化
我们不能直接给测试方法添加参数需要通过注册的方式。
引入依赖
dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-params/artifactIdversion5.9.1/versionscopetest/scope
/dependency3.1 单参数 //单参数ParameterizedTestValueSource(ints {1, 2, 3, 4})void test03(int x) {System.out.println(test03, x x);} ParameterizedTest 注解用于表示方法为一个参数测试方法允许运行同一个测试方法多次但使用不同的参数值来执行测试
ValueSource用于为ParameterizedTest 提供单一类型的参数值。
3.2 多参数 //多参数ParameterizedTestCsvSource({小明, 18, 小红, 19, 小华, 20})void test04(String name, int age) {System.out.println(name 今年 age 岁);} //多参数文件传递ParameterizedTestCsvFileSource(resources test05.csv)void test05(String name, int age) {System.out.println(name 今年 age 岁);} 3.3 通过方法生成参数 ParameterizedTestMethodSource(generate)void test06(String name, int age) {System.out.println(name 今年 age 岁);}public static StreamArguments generate() {return Stream.of(Arguments.arguments(A, 12),Arguments.arguments(B, 13),Arguments.arguments(C, 14),Arguments.arguments(D, 15));}
arguments()方法接受的是一个可变参数可以接收任意数量的参数 4. 测试套件
实际开发中会有多个类需要我们测试所以我们也需要管理多个测试类的运行。
引入依赖 dependencygroupIdorg.junit.platform/groupIdartifactIdjunit-platform-suite/artifactIdversion1.9.1/versionscopetest/scope/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-engine/artifactIdversion5.9.1/versionscopetest/scope/dependency import org.junit.platform.suite.api.SelectClasses;
import org.junit.platform.suite.api.Suite;Suite
SelectClasses({JunitTest.class, JunitTest2.class})
public class RunTest {
}
创建一个类使用入上注解
SelectClasses表示通过class运行测试用例这里先运行JunitTest再运行JunitTest2
也可以使用包运行
Suite
//SelectClasses({example.JunitTest.class, example.JunitTest2.class})
SelectPackages(value {example})
public class RunTest {
}
注意RunTest类不能在这个包中