摘要:本文将带你了解测试技术在Java中做单元测试,希望对大家学测试技术有所帮助。
本文将带你了解测试技术在Java中做单元测试,希望对大家学测试技术有所帮助。
单元测试是发现和解决Bug的重要途径之一。
如何在IDEA(Java的一款IDE)快速做单元测试呢?
1. 在写好的类中,按ctrl+shift+T,会出现以下对话框,选择好要进行测试的类,如ArrayStack。
2. 创建新的测试
3.选择测试框架以及要测试的函数
常用的测试框架为Junit4import org.junit.Assertimport org.junit.Test;
import java.util.Stack;
import java.util.Random;
import static org.junit.Assert.*;
public class ArrayStackTest {
private Stack<Integer> stack;
private ArrayStack<Integer> array;
public void produce_data() {
Random random = new Random();
int rand_len_push = random.nextInt(Integer.MAX_VALUE);
stack = new Stack<>();
array = new ArrayStack<>(rand_len_push);
System.out.println(String.format("rand_len is %d", rand_len_push));
for (int i = 0; i < rand_len_push-5; i++) {
int rand_num = random.nextInt(Integer.MAX_VALUE);
stack.push(rand_num);
array.push(rand_num);
}
for (int i = 0; i < rand_len_push-10; i++) {
int rand_num = random.nextInt(Integer.MAX_VALUE);
stack.push(rand_num);
array.push(rand_num);
}
}
@Test
public void getSize() {
for (int i = 0; i < 10000; i++) {
produce_data();
Assert.assertEquals(stack.size(), array.getSize());
}
}
@Test
public void getCapacity() {
for (int i = 0; i < 10000; i++) {
produce_data();
Assert.assertEquals(stack.capacity(), array.getCapacity());
}
}
@Test
public void isEmpty() {
for (int i = 0; i < 10000; i++) {
produce_data();
Assert.assertEquals(stack.empty(), array.isEmpty());
}
}
@Test
public void push() {
Random random = new Random();
for (int i = 0; i < 10000; i++) {
produce_data();
int rand_time = random.nextInt(Integer.MAX_VALUE);
for (int j = 0; j < rand_time ; j++) {
int rand_num = random.nextInt(Integer.MAX_VALUE);
stack.push(rand_num);
array.push(rand_num);
}
Assert.assertEquals(stack.peek(), array.peek());
}
}
@Test
public void pop() {
Random random = new Random();
for (int i = 0; i < 10000; i++) {
produce_data();
int rand_time = random.nextInt(Integer.MAX_VALUE);
for (int j = 0; j < stack.size()-rand_time; j++) {
stack.pop();
array.pop();
}
stack.pop();
array.pop();
Assert.assertEquals(stack.peek(), array.peek());
}
}
}
4.运行
其他函数都通过了单元测试,而getCapacity函数没有通过,这是由于官方库中的容量和实现的栈的容量不一致,这是正确的。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试技术频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号