java实现stack并测试_JUnit3.8实现模拟堆栈的测试 | 学步园
时间: 2024-03-25 18:36:35 浏览: 16
好的,下面是Java实现stack并测试的步骤:
1. 创建一个Stack类,该类应该包含以下方法:
- push(Object obj): 将元素obj压入堆栈中
- pop(): 弹出并返回堆栈顶部的元素
- peek(): 返回堆栈顶部的元素,但不弹出它
- isEmpty(): 如果堆栈为空,则返回true,否则返回false
2. 使用JUnit3.8编写测试用例,测试Stack类中的所有方法。测试用例应该包含以下测试:
- 测试push()方法是否能够将元素正确地压入堆栈中
- 测试pop()方法是否能够弹出并返回堆栈顶部的元素
- 测试peek()方法是否能够返回堆栈顶部的元素,但不弹出它
- 测试isEmpty()方法是否能够正确返回堆栈是否为空的状态
下面是一个示例代码,可以参考一下:
Stack.java
```java
import java.util.ArrayList;
public class Stack {
private ArrayList<Object> stack = new ArrayList<Object>();
public void push(Object obj) {
stack.add(obj);
}
public Object pop() {
Object obj = stack.get(stack.size() - 1);
stack.remove(stack.size() - 1);
return obj;
}
public Object peek() {
return stack.get(stack.size() - 1);
}
public boolean isEmpty() {
return stack.isEmpty();
}
}
```
StackTest.java
```java
import junit.framework.TestCase;
public class StackTest extends TestCase {
private Stack stack;
protected void setUp() throws Exception {
super.setUp();
stack = new Stack();
}
protected void tearDown() throws Exception {
super.tearDown();
stack = null;
}
public void testPush() {
stack.push("Hello");
stack.push("World");
assertFalse(stack.isEmpty());
}
public void testPop() {
stack.push("Hello");
stack.push("World");
assertEquals("World", stack.pop());
assertEquals("Hello", stack.pop());
assertTrue(stack.isEmpty());
}
public void testPeek() {
stack.push("Hello");
stack.push("World");
assertEquals("World", stack.peek());
assertFalse(stack.isEmpty());
}
public void testIsEmpty() {
assertTrue(stack.isEmpty());
stack.push("Hello");
assertFalse(stack.isEmpty());
}
}
```
这是一个简单的实现,你可以根据自己的需求进行修改和扩展。希望对你有所帮助!