1、在个人电脑中安装一个集成开发环境(Microsoft Visual Studio、Eclipse或其它工具均可),要求该环境能够提供单元自动测试功能;

2、记录安装过程,并将全部内容发表在博客中;

3、实现最大子数组和算法,并将该段代码上传至Coding.net系统中;

4、自行选择合适的覆盖标准并设计测试用例对该段代码进行测试,并将测试结果发布在博客中,结果以如下表格形式完成。

用例编号

用例描述

输入数据

预期输出数据

实际输出数据

通过/不通过

评价

  Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。所以它是一款非盈利性的、专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。对于它的一些理解体会可以参考我的上一篇博文《不同类型软件的分析》,其中讲到了我对于Eclipse使用的一些心得体会。今天的任务主要是讲解一下Eclipse的安装和使用Eclipse自带的Junit工具对最大子数组和算法进行单元测试。

  

一、Eclipse的安装

1.1、下载安装JDK

  安装Eclipse之前,我们需要在电脑上搭建一下Java的开发环境,也就是需要安装JDK(JDK中附带有JRE),目前版本最高的是JDK8.0,大家可以自行到官网上去搜索下载。下载到如图一所示的exe文件,然后双击安装,如图二,接下来按照提示操作即可。注意记一下安装路径,下一步需要用来配置环境变量。 

图一 JDK安装文件图

图二 JDK安装界面图

1.2、配置环境变量

  安装好JDK后,我们需要配置一下电脑的环境变量。首先找到我的电脑(我系统是win8.1),右击选择属性,选择高级系统设置,然后选择环境变量,操作过程如图三,然后新建三个环境变量分别是:变量名:path,变量值:JDK中bin文件夹的路径;变量名:classpath,变量值:JDK中lib文件夹的路径;变量名:JAVA_HOME,变量值:JDK的路径(如果已经存在变量名,那么在变量值中加上你要写的路径,中间用分号隔开),如图四。

图三 环境界面配置图

图四 环境变量配置图

  配置完环境变量,我们通过DOS命令提示符来进行测试,在界面中输入java -version,如果出现如图五的提示证明环境搭建成功,接下来就可以安装eclipse了。

图五 环境搭建测试图

1.3、安装Eclipse

  Eclipse的安装包我们可以从官网上下载(www.eclipse.org),也可以找身边人拷贝免安装的压缩包,解压直接使用。具体安装过程没有什么难点,按照提示一步一步操作下去就可以了。进去以后的操作界面如图六。

图六 Eclipse界面图

二、最大子数组和算法的实现与测试

2.1、最大子数组和算法

  我实现程序的算法使用的是暴力枚举法,如图七所示,写了一个类,类中一个方法解决最大子数组和的程序。具体代码已经上传至coding中(https://coding.net/u/yuanjin/p/MaxArraySum/git/blob/master/sumMaxArray.java)。

图七 代码界面图

2.2、代码的单元测试

  接下来对编写的最大子数组和进行测试,我使用的是Eclipse自带的单元测试工具JUnit,首先点击文件,新建,选择Junit Text Case,然后选择要测试的类和方法,如图八,创建成功如图九。

图八 操作过程图

图九 创建成功界面图

  然后编写测试代码,具体代码已上传至coding中(https://coding.net/u/yuanjin/p/MaxArraySum/git/blob/master/sumMaxArrayTest.java)。我选择了7组数据进行测试分别包含了全正数、全负数、全零、正数和零、负数和零、正数和负数、正数负数和零,共七种情况,第一次测试结果如图十所示,显示有两组数据测试出错。

图十 第一次测试图

  我仔细研究之后,发现问题出在算法上,开始将最大值赋值为零,导致有负数时会出现错误,于是我将初始值设定为最大的带符号整数0x7FFFFFFF解决了问题,再次测试全部通过,如图十一。

图十一 测试成功图

2.3、表格的完成

  

用例编号

用例描述

输入数据

预期输出数据

实际输出数据

通过/不通过

评价

1

全正数

{1,2,3,4}

10

10

通过

一次性通过,证明全正数算法正常

2 全负数 {-1,-2,-3,-8,-4,-6,-9} -1 -1 通过 第一次出错,在于最大值初值问题,已解决
3 全零 {0,0,0,0,0} 0 0 通过 一次性通过,证明全零算法正常
4 正数和零 {2,22,0,10,17} 51 51 通过 一次性通过,证明正数和零算法正常
5 负数和零 {-4,-2,0,-12,-1} 0 0 通过 一次性通过,证明负数和零算法正常
6 正数和负数 {2,22,-10,17} 31 31 通过 第一次出错,在于最大值初值问题,已解决
7 正数负数和零 {-4,-2,0,12,1} 13 13 通过 一次性通过,证明正数负数零算法正常

2016年10月9日星期日

程浩

   

如何用Eclipse进行单元测试的更多相关文章

  1. Android项目使用Eclipse进行单元测试

    Android项目如果每次都整个调试的话,要加载UI,会等很长时间.所以单元测试就显得很方便了. 要进行单元测试,首先得修改下AndroidManifest.xml文件.在Instrument标签里点 ...

  2. java-如何用eclipse打包jar

    Eclipse通过导出的方式(右键单击项目,之后选择Export)打包java类文件生成jar包. 方法一:(在项目工程没有引用外部jar包时,直接导出) 选中工程---->右键,Export. ...

  3. eclipse执行单元测试报CreateProcess error=87的解决方法

    原因是classpath的路径过长导致,在网上看了很多文章,发现解决方法有2种: 1.更改项目路径 或者 maven本地库的路径,减少classpath的深度. 2.由于这是eclipse自身的bug ...

  4. 如何用eclipse搭建Android的开发环境

    l开发主要应用Eclipse 3.7版本. l辅助工具为jdk.Androidsdk Android环境搭建   –1.1.JDK安装 –1.2.Eclipse安装 –1.3.Android SDK安 ...

  5. 如何用googletest写单元测试

    http://www.uml.org.cn/c++/201203293.asp googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows.linux.Mac等OS平台 ...

  6. 手把手教你如何用eclipse搭建前端开发环境

    3.创建静态web工程 打开eclipse,选择file,new project 或者 new other...,选择web项中的static web project ,next. 输入你的项目名,如 ...

  7. 如何用Eclipse+maven创建servlet 3.0 web 项目

    用eclipse + maven, 选择 maven-archetype-webapp,默认的servlet版本是2.3. 目前servlet版本都已经是3.X. 那有什么办法可以创建servlet ...

  8. Maven(一)如何用Eclipse创建一个Maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  9. 如何用eclipse运行导入的maven项目

    1.配置jdk系统环境变量.找到安装的jdk的安装目录,新建系统环境变量,变量名为JAVA_HOME(作为一个引用),变量值为该路径. 找到Path,将%JAVA_HOME%/bin; 添加到变量值的 ...

随机推荐

  1. mysql-5.7.13-win32 安装

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  2. mir [20161220]

    最近玩backmir,查询了一些资料,突然领悟到原来各个地方的boss攻击和防御都有一定的上限,而相对应的,玩家也有攻击和防御,只要玩家的攻防能对付boss的攻防,就可以无伤打boss. 小时候玩热血 ...

  3. Gold Game

    一.项目描述:黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0 ...

  4. oracle 删除旧的归档文件或跟踪文件

    2016-02-16 可以使用两种方法完成删除旧文件的操作: 一.是使用find命令结合-exec rm; 二.是使用find命令结合使用xargs rm. 例如: 把5天之前的归档文件删除: [or ...

  5. XML Schema命名空间解析

    URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee 1998].在Web体系结构中, ...

  6. C语言实现GPT头和分区表的读取(gcc)

    #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h&g ...

  7. android解析图片资源缩小放大问题

    今天突然发现,图片放在drawable 不同分辨率的目录下会有不同程度的放大或者缩小?这是为什么呢? 首先我们从decodeResource()方法入手 public static Bitmap de ...

  8. 网络转载——java接口的概念

    为什么会出现接口? 接口的出现是为了扩展java中的类继承的单调性.这样使得功能更加丰富. 接口关键字? 定义接口interface,实现一个接口  implements 什么接口呢? 接口是一种特殊 ...

  9. 更换win7锁屏壁纸

    1.打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Backgroun ...

  10. 将对象的所有属性名放到一个数组中 || 获得对象的所有属性名 || return;不具有原子性 || 怎样自己制作异常|| 判断对象有没有某个属性 || 当传递的参数比需要的参数少的时候,没有的值会被赋予undefined || 获得函数实际传递的参数 || 怎么用函数处理一个对象 || 用一个名字空间定义一个模块所有的函数 || 给一个对象添加方法

    获得对象的所有属性名 || 将对象o的所有属性名放到数组中 var o = {x:1,y:2,z:3}; var arr = []; var i = 0; for(arr[i++] in o){};/ ...