使用Junit写一个嵌套测试类
时间: 2024-04-30 19:17:32 浏览: 101
嵌套测试类是JUnit 5中的一个新特性,可以使测试代码更加清晰易读。下面是一个示例:
```java
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@DisplayName("A stack")
public class StackTest {
Stack<Integer> stack = new Stack<>();
@Nested
@DisplayName("when new")
class WhenNew {
@Test
@DisplayName("is empty")
void isEmpty() {
assertEquals(0, stack.size());
}
}
@Nested
@DisplayName("after pushing an element")
class AfterPushing {
@BeforeEach
void init() {
stack.push(42);
}
@Test
@DisplayName("is not empty")
void isNotEmpty() {
assertEquals(1, stack.size());
}
@Test
@DisplayName("returns the element when popped")
void returnElementWhenPopped() {
assertEquals(42, stack.pop());
assertEquals(0, stack.size());
}
}
}
```
在上面的示例中,我们定义了一个`StackTest`测试类,该类包含了两个嵌套的测试类:`WhenNew`和`AfterPushing`。`WhenNew`测试类包含了一个`isEmpty()`测试方法,它测试了当栈为空时`Stack.size()`方法的返回值是否为0。`AfterPushing`测试类包含了两个测试方法,`isNotEmpty()`和`returnElementWhenPopped()`,它们测试了当栈不为空时`Stack.size()`方法的返回值是否为1和`Stack.pop()`方法返回的值是否正确。
通过使用嵌套测试类,我们可以将相关的测试组织在一起,使测试代码更加清晰易读。
阅读全文