java junit怎么测试

JUnit 是一个用于 Java 编程语言的单元测试框架。它由 Erich Gamma 和 Kent Beck 于 1997 年共同创建,用于进行单元测试。JUnit 5 是最新的版本,它由 JUnit Platform 和 JUnit Jupiter 以及 JUnit Vintage 组成,后者用于支持旧版本的 JUnit。
以下是使用 JUnit 5 进行单元测试的基本步骤:
添加依赖
:在你的 Maven 或 Gradle 项目中添加 JUnit 5 的依赖。
对于 Maven,添加以下依赖到
pom.xml
文件中:


org.junit.jupiter
junit-jupiter-api
5.7.0
test


org.junit.jupiter
junit-jupiter-engine
5.7.0
test


对于 Gradle,添加以下依赖到
build.gradle
文件中:
testImplementation ‘org.junit.jupiter:junit-jupiter-api:5.7.0’
testRuntimeOnly ‘org.junit.jupiter:junit-jupiter-engine:5.7.0’
编写测试类
:创建一个测试类,并使用
@Test
注解标记测试方法。
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class MyTests {
@Test
public void testAddition() {
int sum = 1 + 1;
assertEquals(2, sum, “Should be equal”);
}
}
使用断言
:JUnit 提供了多种断言方法来验证代码行为。
assertEquals
:检查两个值是否相等。
assertTrue
:检查条件是否为真。
assertFalse
:检查条件是否为假。
assertNotNull
:检查对象不是 null。
assertNull
:检查对象是 null。
assertSame
:检查两个引用是否指向同一个对象。
运行测试
:使用 IDE(如 IntelliJ IDEA 或 Eclipse)中的测试功能,或者使用 Maven/Gradle 命令行工具来运行测试。
在 Maven 中,可以使用以下命令:
mvn test
在 Gradle 中,可以使用以下命令:
gradle test
使用
@BeforeEach
和
@AfterEach
:这些注解用于在每个测试方法之前和之后执行代码。
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.AfterEach;

public class MyTests {
private int number;

@BeforeEach
public void setUp() {
number = 0;
}

@Test
public void testIncrement() {
number++;
assertEquals(1, number);
}

@AfterEach
public void tearDown() {
number = 0;
}
}
使用
@BeforeAll
和
@AfterAll
:这些注解用于在所有测试开始之前和所有测试结束之后执行一次性代码。
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.AfterAll;

public class MyTests {
private static int number;

@BeforeAll
public static void init() {
number = 0;
}

@Test
public void testStaticIncrement() {
number++;
assertEquals(1, number);
}

@AfterAll
public static void done() {
number = 0;
}
}
使用
@Nested
:创建嵌套测试类。
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

public class MyTests {
@Nested
class InnerTests {
@Test
public void testInner() {
// …
}
}
}
参数化测试
:使用
@MethodSource
或
@ValueSource
等注解来参数化测试。
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

public class MyTests {
@ParameterizedTest
@ValueSource(ints = {1, 2, 3})
public void testWithParams(int value) {
// …
}
}
异常测试
:使用
assertThrows
来测试异常。
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class MyTests {
@Test
public void testException() {
Exception exception = assertThrows(IllegalArgumentException.class, () -> {
throw new IllegalArgumentException(“Bad argument”);
});
assertEquals(“Bad argument”, exception.getMessage());
}
}
这些是 JUnit 5 的基本使用方法。JUnit 5 还提供了更多的功能,如测试套件、条件测试等,可以根据需要进一步探索。