您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,我们可以使用JUnit框架来进行单元测试
首先,确保已经在项目中添加了JUnit依赖。如果使用Maven,可以在pom.xml文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
接下来,创建一个名为MyStack.java
的Java Stack类:
public class MyStack<T> {
private Node<T> top;
private int size;
private static class Node<T> {
T data;
Node<T> next;
public Node(T data) {
this.data = data;
}
}
public void push(T value) {
Node<T> newNode = new Node<>(value);
newNode.next = top;
top = newNode;
size++;
}
public T pop() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
T value = top.data;
top = top.next;
size--;
return value;
}
public T peek() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
return top.data;
}
public boolean isEmpty() {
return top == null;
}
public int size() {
return size;
}
}
现在,我们可以编写一个名为MyStackTest.java
的单元测试类:
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class MyStackTest {
private MyStack<Integer> stack;
@Before
public void setUp() {
stack = new MyStack<>();
}
@Test
public void testPushAndPop() {
stack.push(1);
stack.push(2);
stack.push(3);
assertEquals(3, stack.pop());
assertEquals(2, stack.pop());
assertEquals(1, stack.pop());
}
@Test
public void testPeek() {
stack.push(1);
stack.push(2);
stack.push(3);
assertEquals(3, stack.peek());
}
@Test(expected = IllegalStateException.class)
public void testPopOnEmptyStack() {
stack.pop();
}
@Test(expected = IllegalStateException.class)
public void testPeekOnEmptyStack() {
stack.peek();
}
@Test
public void testIsEmpty() {
assertTrue(stack.isEmpty());
stack.push(1);
assertFalse(stack.isEmpty());
stack.pop();
assertTrue(stack.isEmpty());
}
@Test
public void testSize() {
assertEquals(0, stack.size());
stack.push(1);
assertEquals(1, stack.size());
stack.push(2);
assertEquals(2, stack.size());
stack.pop();
assertEquals(1, stack.size());
}
}
这个测试类包含了针对MyStack
类的各种方法的测试用例,包括push
、pop
、peek
、isEmpty
和size
。通过运行这些测试用例,我们可以确保MyStack
类的实现是正确的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。