测试技术之在Java中做单元测试
凌雪 2018-11-07 来源 :网络 阅读 1282 评论 0

摘要:本文将带你了解测试技术在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函数没有通过,这是由于官方库中的容量和实现的栈的容量不一致,这是正确的。

     

 

          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试技术频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程