『Java』Junit单元测试
程序员文章站
2022-04-29 15:07:00
...
1. 如何进行单元测试
-
测试分类:
- 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
- 白盒测试:需要写代码的。关注程序具体的执行流程。
-
Junit 使用:白盒测试
-
步骤:
-
定义一个测试类(测试用例)
- 建议:
- 测试类名:被测试的类名Test CalculatorTest
- 包名:xxx.xxx.xx.test com.github.ice
- 建议:
-
定义测试方法:可以独立运行
- 建议:
- 方法名:test测试的方法名 testAdd()
- 返回值:void
- 参数列表:空参
- 建议:
-
给方法加
@Test
-
导入 junit 依赖环境
-
-
判定结果:
- 红色:失败
- 绿色:成功
- 一般我们会使用断言操作来处理结果
Assert.assertEquals(期望的结果,运算的结果)
-
2. JUnit 5 vs JUnit 4 - 注释
特征 | JUNIT 4 | JUNIT 5 |
---|---|---|
声明一种测试方法 | @Test | @Test |
在当前类中的所有测试方法之前执行 | @BeforeClass | @BeforeAll |
在当前类中的所有测试方法之后执行 | @AfterClass | @AfterAll |
在每个测试方法之前执行 | @Before | @BeforeEach |
每种测试方法后执行 | @After | @AfterEach |
禁用测试方法/类 | @Ignore | @Disabled |
测试工厂进行动态测试 | NA | @TestFactory |
嵌套测试 | NA | @Nested |
标记和过滤 | @Category | @Tag |
注册自定义扩展 | NA | @ExtendWith |
2.1 JUnit 4 使用
import org.junit.*;
public class MyTest {
@BeforeClass
public static void born() {
System.out.println("BeforeClass...");
}
@Before
public void init() {
System.out.println("Before...");
}
@Test
public void test1() {
System.out.println("Test1...");
}
@Test
public void test2() {
System.out.println("Test2...");
}
@Ignore
public void func() {
System.out.println("Ignore...");
}
@After
public void close() {
System.out.println("After....");
}
@AfterClass
public static void over() {
System.out.println("AfterClass...");
}
}
输出结果:
BeforeClass...
Before...
Test1...
After....
Before...
Test2...
After....
AfterClass...
2.1 JUnit 5 使用
import org.junit.jupiter.api.*;
public class MyTest {
@BeforeAll
public static void born() {
System.out.println("BeforeAll...");
}
@BeforeEach
public void init() {
System.out.println("BeforeEach...");
}
@Test
public void test1() {
System.out.println("Test1...");
}
@Test
public void test2() {
System.out.println("Test2...");
}
@Disabled
public void func() {
System.out.println("Disabled...");
}
@AfterEach
public void close() {
System.out.println("AfterEach....");
}
@AfterAll
public static void over() {
System.out.println("AfterAll...");
}
}
输出结果:
BeforeAll...
BeforeEach...
Test1...
AfterEach....
BeforeEach...
Test2...
AfterEach....
AfterAll...
上一篇: PHP验证码在验证页面中的应用分析