Java 实用使用技巧

测试 junit 的 使用

断言的使用

断言用于验证测试结果是否符合预期。以下是一些常用的断言方法:

  • assertEquals(expected, actual) : 验证实际值是否等于预期值。
  • assertNotEquals(unexpected, actual) : 验证实际值是否不等于某个值。
  • assertTrue(condition) : 验证条件是否为真。
  • assertFalse(condition) : 验证条件是否为假。
  • assertNull(object) : 验证对象是否为 null
  • assertNotNull(object) : 验证对象是否不为 null
  • assertArrayEquals(expectedArray, actualArray) : 验证两个数组是否相等。

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import static org.junit.jupiter.api.Assertions.*;

class AssertionExample {

@org.junit.jupiter.api.Test
void testAssertions() {
int expected = 42;
int actual = 40 + 2;
assertEquals(expected, actual, "实际值与预期值不匹配");

String str = null;
assertNull(str, "对象应为 null");

boolean condition = 5 > 1;
assertTrue(condition, "条件应为真");
}
}

常用注解

  • @Test : 标记一个方法为测试方法。
  • @BeforeAll : 在所有测试方法执行之前运行,仅运行一次,需为静态方法。
  • @AfterAll : 在所有测试方法执行之后运行,仅运行一次,需为静态方法。
  • @BeforeEach : 在每个测试方法执行之前运行。
  • @AfterEach : 在每个测试方法执行之后运行。
  • @Disabled : 禁用某个测试方法或类。
  • @ParameterizedTest : 用于参数化测试。

参数化测试

参数化测试允许在测试方法中使用不同的参数运行多次。以下是一个简单的示例:

1
2
3
4
5
6
7
8
9
10
11
12
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

class ParameterizedTestExample {

@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4, 5})
void testWithMultipleValues(int number) {
System.out.println("测试参数: " + number);
// 添加断言逻辑
}
}

可以使用不同的参数提供器,例如 @CsvSource@CsvFileSource@MethodSource 等,来提供更复杂的测试数据.