zoukankan      html  css  js  c++  java
  • 软件工程(2018)第二次个人作业

    自动单元测试技术练习

    一、选择开发工具

    1. 工具选择

    本次作业我选择的开发工具是GoogleAndroid Studio(简称AS)。其支持的工具语言有C++JavaKotlin,在此我选择Java进行开发。
    Android Studio

    2. 界面介绍

    由于我已安装过AS,所以不再介绍安装过程(只要全程保持联网,安装过程还是很愉悦的),只简单展示一下界面。

    项目创建页
    左侧为历史项目快捷入口,右侧常用的有Start a new Andrid Studio project(开始一个新项目)和Open an existing Android Studio project(打开一个已存在的项目)。

    等待Gradle加载完,进入主界面

    二、 练习自动单元测试技术

    1. 加入依赖库

    AS自带Junit4.12的测试,在此加入依赖库:

    testImplementation 'junit:junit:4.12'
    

    2. 编写测实例方法

    加入依赖库后创建一个实例,作为测试方法,我选择了经典的二分查找,第一个参数是一个有序数组,第二个是要查找的数:

    public class Binary_chop {
        //有序数组
        private int []array;
        //待查找数
        private int sel;
        
        //空的构造方法,用作默认测试样例
        public Binary_chop(){
            array=new int[10];
            for(int i = 0;i < 10;i++){
                array[i] = i;
            }
            sel = 5;
        }
    
        //含参构造方法
        public Binary_chop(int[] array, int sel) {
            this.array = array;
            this.sel = sel;
        }
    
        //二分查找方法
        public int binary_chop() {
    
            //低位指针,初始为0
            int low = 0;
            //高位指针,初始为数组末位
            int high = array.length;
    
            while (low <= high) {
                int mid = low + (high - low) / 2;
                if (sel == array[mid]) {
                //期望值为查找值在数组中的位置
                    return ++mid;
                }
                if (sel > array[mid]) {
                    low = mid + 1;
                } else {
                    high = mid - 1;
                }
            }
            //未找到则返回-1
            return -1;
        }
    }
    

    3. 编写测试类

    1. 写好测试类后右键选择Test:

    2. 选择默认测试类或自己新建一个:

    3. 新建测试类,勾选待测试方法:

    4. 编译器自动构建测试类:

    默认内容如下:

    public class Binary_chopTest {
        @Test
        public void binary_chop() throws Exception {
        }
    }
    

    4. 运行测试类

    1. 先测试一下无参构造方法下的默认数据:

    数组:0,1,2,3,4,5,6,7,8,9 ;
    待查找数:5;
    期待值:6;

    @Test
    public void binary_chop() throws Exception {
        assertEquals(6,new Binary_chop().binary_chop());
    }
    

    点击开始测试:

    得到如下结果:

    说明没有错误。

    2. 设置样例进行测试:

    数组:33,37,56,90,98,126,255,256,333,569;
    待查找数:56;
    期待值:3;

    @Test
    public void binary_chop() throws Exception {
        assertEquals(3,new Binary_chop(new int []{33,37,56,90,98,126,255,256,333,569},56).binary_chop());
    }
    

    开始测试,得到如下结果:

    证明依然没有问题。

    3. 设置一个错误值

    数组:33,37,56,90,98,126,255,256,333,569;
    待查找数:57;
    由于57不存在于数组中,故期待值应为-1
    期待值:-1;

    @Test
    public void binary_chop() throws Exception {
        assertEquals(-1,new Binary_chop(new int []{33,37,56,90,98,126,255,256,333,569},56).binary_chop());
    }
    


    证明程序无错误。

  • 相关阅读:
    是什么意思
    Hql查询
    java的LINQ :Linq4j简明介绍
    Sqlite内存数据库
    ACE中的Proactor介绍和应用实例
    mysql的锁表问题
    消息:'null'为空或不是对象
    FusionChart中引入图类型和数据源方法
    实现FusionChart动态获取数据(二)
    JSP页面解决文件路径方法
  • 原文地址:https://www.cnblogs.com/Mr-quin/p/8598253.html
Copyright © 2011-2022 走看看