单元测试作业指导书(二)

单元测试作业指导书(一) 这是我以前任项目经理时,编写的关于单元测试方面的作业指导书,针对多种开发环境叙述怎么进行单元测试以及环境配置,现在整理了一下。应该对大家有所帮助。  这是第一部分,主要针对C和C++项目的(包括了Windows环境和Linux环境),下部分将针对Java及J2EE项目。 1.      目的为了减少代码中的错误数量, 减少调试所花的时间和精力, 改善软件质量, 减少开发和维 阅读详情

这是我以前任项目经理时,编写的关于单元测试方面的作业指导书,针对多种开发环境叙述怎么进行单元测试以及环境配置,现在整理了一下。应该对大家有所帮助。

这是第二部分。

 

3.3  JAVA标准

3.3.1测试环境使用JSDK1.3

3.3.1.1前题:

使用JUnit3.7版,解压后,路径为x://junit3.7;

使用Ant1.3版,解压后,路径为x://ant1.3;

 

配置测试框架使用环境:

测试框架使用环境可以在build.xml文件中配置,此文件是ant的输入文件,ant根据其来生成和执行应用程序;(这相当于C/C++的Makefile文件,但比之功能要强大、且配置更为简单);

1.x://ant1.3/bin目录下含有ant执行程序的批处理文件,所以要将此目录加入到系统环境变量path中;

2.建立项目文件目录结构;我建议在进行项目开发能有一个完整的目录结构,如下所示:

“AntCons”为项目目录名称,可以替换为所需要的项目名称;在项目目录下有两个子目录分别为build和src,这两个子目录分别为源文件目录和发布文件目录;而src(源文件目录)又分为main(源文件)和test(测试文件)目录。而com.myjava则是包名,对应于源java文件中的package;

3.在项目目录中建立build.xml文件(未涉及测试的),文件大致结构如下所示:

定义项目名称及位置

<project default="dist" name="MyTest" basedir="." >

首先声明一些变量,便于使用

<property name="builddir" value="build/classes" />

<property name="projectname" value="MyTest" />

<property name="extclasslib" value="D:/Work_Java/AntCons/build/classes" />

定义目标:编译;

在此目标中将建立发布目录、编译目标java源文件并且指定class路径;

<target name="compile">

<mkdir dir="${builddir}" />

<javac destdir="${builddir}" srcdir="src/main/"

classpath="${java.class.path};${extclasslib}">

        <include name="**/*.java" />

</javac> 

</target>

 

定义目标:运行;

此目标依赖于编译目标;

<target name="runtest" depends="compile">

<java classname="com.myjava.UseHello" fork="yes" taskname="usehello">

<classpath path="${java.class.path};${extclasslib}">

</classpath>

</java>

</target>

 

</project>

 

(build.xml相关标记的说明可以在ant下载包的说明文档中找到,ant定义了很多方便操作的指令)

 

4.编写代码文件,我们假设代码文件位于com.myjava包中,则代码文件将放置于src/main/com/myjava目录下;

 

5.编写单元测试文件,依照上面的项目目录设置,则单元测试文件放置于src/test下;

 

3.3.1.2建立测试用例:

1、以类名加前辍“Test”命名测试单元文件名,比如“Sample”类的类文件名为Sample.java,则测试单元文件命名为TestSample.java;

2、编写测试用例类,在测试用例类中引入测试框架包以及要测试的包声明,以TestSample为例:

测试文件TestSample.java:

package test.Sample; //测试包声明

import junit.framework.*; //引入测试框架包

import xxxx; //引入被测试单元包

 

//派生测试框架的测试用例类

public class TestSimple extends TestCase {

       protected int fValue1;

       protected int fValue2;

       public TestSimple(String name) {

              super(name);

       }

 

       //用例初始化,可作为桩函数

       protected void setUp() {

              fValue1= 2;

              fValue2= 3;

       }

 

       //用例析构

       protected void tearDown(){

       }

 

       //组装测试用例

       public static Test suite() {

              /*

               * the type safe way

               *

//增加测试用例到“箱子”

              TestSuite suite= new TestSuite();

              suite.addTest(

                     new TestSimple("add") {

                             protected void runTest() { testAdd(); }

                     }

              );

 

              suite.addTest(

                     new TestSimple("testDivideByZero") {

                             protected void runTest() { testDivideByZero(); }

                     }

              );

              return suite;

              */

 

              /*

               * the dynamic way

               */

              return new TestSuite(TestSimple.class);

       }

 

       //用例1:

       public void testAdd() {

              //normal test, 功能测试,属黑盒测试

double result= fValue1 + fValue2;

              assertTrue(result == 6);

       //extra test, 条件及错误路径测试,属白盒测试

      

       //except test, 异常测试,属白盒测试

 

       //other test, see the functions "...",

//其它测试,比如被测试类的基类方法,在此需要做出说明

       }

 

       //用例2:

       public void testDivideByZero() {

       //................

       }

 

       //用例3:

       public void testEquals() {

       //.................

       }

}

 

3. 编写驱动测试用例类,将各个测试用例组装到一起进行测试:

package test.Sample; //测试包声明

import junit.framework.*; //引入测试框架包

import xxxx; //引入被测试单元包

/**

 * TestSuite that runs all the sample tests

 *

 */

public class AllTests {

       public static void main (String[] args) {

              junit.textui.TestRunner.run (suite());

       }

       public static Test suite ( ) {

              //建立测试用例的“箱子”

              TestSuite suite= new TestSuite("All Tests");

              suite.addTest(TestSimple.suite());

              //此处增加一些其它单元测试类

              //......

suite.addTest(junit.tests.AllTests.suite());

           return suite;

       }

}

 

4. 将测试单元的编译及运行加入到build.xml中;

在build.xml的project标记加入两个目标,现在的build.xml如下所示:

定义项目名称及位置

<project default="dist" name="MyTest" basedir="." >

首先声明一些变量,便于使用

<property name="appname" value="sample" />

<property name="builddir" value="build/classes" />

<property name="projectname" value="MyTest" />

<property name="extclasslib" value="D:/Work_Java/AntCons/build/classes" />

 

定义目标:依赖库检测;

<target name="JUNIT">

  <available property="junit.present" classname="junit.framework.TestCase" />

</target>

 

定义目标:编译;

在此目标中将建立发布目录、编译目标java源文件并且指定class路径;

<target name="compile" depends="JUNIT">

 <mkdir dir="${builddir}" />

<javac destdir="${builddir}" srcdir="src/main/"

classpath="${java.class.path};${extclasslib}">

        <include name="**/*.java" />

  </javac>    

</target>

 

定义目标:打包;

在此目标中将建立分发包目录、将编译完成的.class文件打包为jar文件;

<target name="jar" depends="compile">

<mkdir dir="build/lib"/>

  <jar jarfile="build/lib/${appname}.jar"

    basedir="${builddir}" includes="com/**"/>

</target>

 

定义目标:编译测试用例;

<target name="compiletests" depends="jar">

  <mkdir dir="build/testcases"/>

  <javac srcdir="src/test" destdir="build/testcases">

    <classpath>

      <pathelement location="build/lib/${appname}.jar" />

      <pathelement path="" />

    </classpath>

    <include name="**/*.java"/>

  </javac>

</target>

 

定义目标:运行应用程序;

此目标依赖于编译目标;

<target name="runtest" depends="compile">

<java classname="com.myjava.UseHello" fork="yes" taskname="usehello">

<classpath path="${java.class.path};${extclasslib}">

</classpath>

</java>

</target>

 

定义目标:运行测试用例;

在此目标中将运行测试用例,运行在窗口中进行还是在控制台进行取决于所用classname,"junit.textui.TestRunner"表示在控制台进行,如果改为"junit.ui.TestRunner"则可以在窗口中运行

<target name="runtests" depends="compiletests" if="junit.present">

 <java fork="yes" classname="junit.textui.TestRunner"

   taskname="junit" failonerror="true">

   <arg value="test.Sample.AllTests"/>

   <classpath>

     <pathelement location="build/lib/${appname}.jar" />

     <pathelement location="build/testcases" />

     <pathelement path="" />

     <pathelement path="${java.class.path}" />

   </classpath>

 </java>

</target>

 

</project>

 

5. 最后,在项目所在目录执行Ant target_name,比如:运行测试用例可以使用Ant runtests;

 
头歌实训作业答案c++ 1. **类和对象**:学习如何设计类和对象,以及如何使用访问修饰符(`public`、`private`、`protected`)。2. **控制结构**:掌握`if`、`switch`、`for`、`while`和`do-while`循环等控制语句。1. **STL容器**:熟悉标准模板库(STL)中的容器,如`vector`、`list`、`map`等。5. **引用和内存管理**:了解引用的概念和动态内存分配(`new`和`delete`)。 阅读详情

相关推荐

作业指导书(SOP)编辑软件

最近花时间写了一个作业指导书编辑软件,基于VSTO。给大家看看。 应该来说还是很好用的。 1、将SOPTool2012.rar解压到D:\ 2、点击setup安装。 3、安装完成后,打开EXCEL(支持 office2007以上版本) 4、点击EXCEL中的"SOP TOOL 2012"选项卡中的"SOPTool设置"按钮。 5、选择或编辑SOP配置文件。 6、点击关闭。 7、点击"SOP TOOL 2012"选项卡中"新建"按钮"即可新建作业指导书. 说明: SOP配置文件为作业指导书模板的设置文件。可根据各公司需求自由定制模板或配置。

软件测试实验:Junit单元测试

单元测试是指对软件中的最小可测试单元进行检查和验证,例如一个方法或一个类。Junit是一个流行的Java单元测试框架,它提供了一系列的注解和断言方法,方便开发者编写和运行单元测试。在本次实验中,我们使用Junit对一个简单的计算器程序进行了单元测试。我们首先创建了一个Calculator类,其中包含了加、减、乘、除四个方法。然后,我们为每个方法编写了对应的测试类,使用@Before注解设置了初始化对象,使用@Test注解标记了测试方法,使用assertEquals方法进行了断言。

m0_72471315的博客 7393

IT部作业指导书

IT管理部作业指导书 信息设备采购作业指导书; 信息设备使用作业指导书; 信息设备管理作业指导书; 信息网络管理作业指导书;

Java 单元测试入门

Java 单元测试 单元测试是编写测试代码,用以检测特定的、明确的、细颗粒的功能! 单元测试规则: 1、每一个测试方法上使用@Test进行修饰 2、每一个测试方法必须使用public void 进行修饰 3、每一个测试方法不能携带参数 4、测试代码和源代码在两个不同的项目路径下 5、测试类的包应该和被测试类保持一致 6、测试单元中的每个方法必须可以独立测试 以上的6条规则,是在使用单元测试的必须项,当然junit也建议我们在每一个测试方法名加上test前缀, 表明这是一个测试方法。 计算类 public c

其实我是个程序员的博客 508

软件集成测试工作指南

软件集成测试工作指南 本文详细阐述了进行单元测试流程,指导项目开发人员如何开展软件单元测试. 单元测试是对最小的可测试软件元素(单元)实施的测试,它所测试的内容包括单元的内部结 构(如逻辑和数据流)以及单元的功能和可观测的行为。使用白盒测试方法测试单元的内部结 构,使用黑盒测试方法测试单元的功能和可观测的行为。

单元测试详细作业指导书

对单元测试进行详细介绍 单元测试作业指导书(一)-C和C++部分.doc 单元测试作业指导书(二)-JAVA部分.doc 单元测试作业指导书(三).doc 单元测试作业指导书(四)-JUnit的使用部分.doc

unittest自动化测试框架详解(超详细~)

按照阶段来分,一般就是单元测试,集成测试,系统测试,验收测试。单元测试是对单个模块、单个类或者单个函数进行测试。将访问接口的过程封装在函数里面;接口测试就变成了单元测试;单元测试就是通过传参,对某个模块、某个类、某个函数进行结果输出后验证的测试。unittest是Python自带的单元测试框,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件,可以用来作自动化测试框架的用例组织执行框架。

huace3852的博客 356

python基础·练习1(字符串作业)

python基础·练习1字符串作业一、填空二、编程初级中级 字符串作业 一、填空 1.已知s2 = ‘123’,则:s2 * 3 = ___________; s2 + str(456) = ___________; s2 = '123' print(s2 * 3) #123123123 print(s2 + str(456)) #123456 2.已知s1 = ‘123456789’。则: s1[:3] = ________; s1[-5:] =____________; s1[::2]=______;

qq_47326711的博客 8122

软件测试——计算器加减乘除

实 验 目 的: (1)掌握软件测试的过程和方法。 (2)掌握测试用例的设计方法。 (3)熟悉测试计划说明书、测试记录与分析报告的编写。 实 验 环 境: PC一台 、Junit、WORLD编辑工具 实 验 内 容 及 过 程: 实验要求: 1.根据所选的课程设计题目进行以下实验 2.用程序设计所规定的编程语言,编写一段代码实现软件需求给出的一个功能(每位同学所选的功能模块不同)。 3.制定测试计划、设计测试用例,特别是一些异常情况的处理。 4.模块的动态测试以黑盒法为主,辅以白盒法。重要执行路径的测试使用

qq_52112146的博客 1万+

某招标公告网和vcaptcha验证码识别逆向

本文分析了某验证码系统的加密流程及破解思路。首先通过反混淆技术定位到加密函数,拆解了包含指纹函数、环境参数等组成的加密字符串。研究发现验证码生成涉及canvas指纹、环境检测等反爬机制,可通过模拟浏览器环境绕过。验证过程需要解密图片顺序,通过work2.js计算还原图片位置,再结合滑动轨迹、时间等参数生成验证请求。文章仅提供技术研究思路,强调需遵守法律法规,严禁非法破解信息系统。完整流程包括环境模拟、加密参数还原、图片处理和轨迹生成等步骤,成功率较高。

码王吴彦祖的博客 578

当C#遇见声音魔法:从麦克风到文字的0.1秒奇幻漂流

为什么选300Hz?因为人声基频通常在85-255Hz,但清脆的“啊”可能到2kHz,所以300Hz是安全区!(参考知识库[1])

墨夶的博客 365

1、JUnit单元测试

JUnit主要有两个版本,版本3和版本4,版本3主要是3.8,使用反射机制,版本4使用注解 1、引入JUnit框架: 在项目上右键,在弹出菜单上选择:build path——>configure build path...——>Java Build Path,在右面选择Libraries标签页,然后点击Add Library,选在JUnit,点击next,选择版本,finish完成导入。 2

kaoa000的专栏——非淡泊无以明志,非宁静无以致远 941

【Qt开发】管理OpenGL上下文QOpenGLContext类及应用实践示例代码

QOpenGLContext 提供了一个简单、高效的接口来管理 OpenGL 上下文。本文详细介绍了 QOpenGLContext 的基本功能、常用方法、信号槽机制、高级应用技巧及常见问题的解决方法。通过这些介绍,读者可以更好地掌握和利用 QOpenGLContext 进行 OpenGL 渲染和管理实验。对于有特殊需求的开发者,也可以通过探索更多高级设置和优化策略,以满足具体的应用场景。

科技改变人类,技术成就未来 1872

单元测试作业指导书(四)

这一部分是Junit工具的简单使用说明,作为作业指导书的附件。 本文简单地介绍了如何使用Junit编写和组织自己的单元测试代码。 l         简单的测试用例如何写测试代码呢?最简单的方式当然是在调试器中写成表达式的形式。你不必重新编译程序就可以改变调试表达式,并且你可以等看到了具体运行的对象再决定写什么样的调试表达式。另一种方式就是编写调试表达式输出一些东西到标准的输出

samlet的专栏 1348

基于YOLOv8的端面小目标计数解决方案: 多头检测器+小缺陷到大缺陷一网打尽的GiraffeDet+Wasserstein Distance Loss | 助力工业小目标缺陷检测

端面小目标计数部署解决方案 | 亲测在工业小目标缺陷涨点明显,原始mAP@0.5 0.936提升至0.955

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1955

飞牛fnNAS搭建个人小账本

本文介绍了如何在飞牛NAS上部署ezBookkeeping个人记账应用。该开源工具支持多平台使用,具备双因素认证、多级分类等功能。文章详细讲解了Docker激活、镜像下载、容器部署等步骤,并展示了账户管理、交易记录等基础操作。同时指导用户通过ZeroTier实现远程访问,方便随时随地使用个人记账系统。该方案既保障了数据隐私,又提供了专业记账功能,适合对财务隐私敏感的用户。

dgnankai的专栏 782

光伏电站项目施工作业指导书(WORD)

本文系统梳理了光伏电站施工全流程及软件项目管理文档体系。施工部分涵盖前期准备、安装过程(包括材料进场、基础制作、设备安装等9个环节)及系统调试。文档管理部分详细列出了软件项目全生命周期所需的86类文档,包括需求分析、设计开发、测试验收等各阶段文件,以及建设方案资料清单(含智慧城市、医疗信息化等20类技术方案)。完整资料可通过文末联系方式获取。

2302_79423711的博客 306

点云处理指南介绍

指南目录,Open3D与PCL内容介绍

NNNNNathan的博客 1万+

单元测试作业指导书(三)

3.3.2 使用Junit测试EJB3.3.2.1安装JUnit和JunitEE你需要将junit.jar和junitee.jar加入到J2EE应用程序的CLASSPATH中。       一般地,将jar文件拷贝到服务器的根目录下的lib目录中就可以了。注意:该目录下的文件一般不能被动态加入,所以你需要重新启动应用服务器。3.3.2.2准备一个EJB例子你可以在JunitEE安装

samlet的专栏 1290

京东/淘宝商品评论情感分析:基于Python的大规模评论爬取与NLP情感分析实战

在当今电商蓬勃发展的时代,用户评论已成为影响消费者购买决策的关键因素。本文将详细介绍如何使用Python最新技术栈爬取京东和淘宝商品评论,并运用先进的自然语言处理技术对评论进行情感分析,识别用户的好评与差评倾向。通过完整的代码实现和深入的技术解析,帮助读者掌握从数据采集到情感分析的全流程。本文详细介绍了如何使用Python最新技术栈实现京东和淘宝商品评论的爬取与情感分析。通过结合异步爬虫、反爬策略、BERT情感分析等先进技术,我们构建了一个完整的评论分析系统。高效爬取。

2201_76125261的博客 1403

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

单元测试作业指导系列讲座之一

这是我以前任项目经理时,编写的关于单元测试方面的作业指导书,针对多种开发环境叙述怎么进行单元测试以及环境配置,现在整理了一下。应该对大家有所帮助。   这是第一部分,主要针对C和C++项目的(包括了Windows环境和Linux环境),下部分将针对Java及J2EE项目。  1. 目的   为了减少代码中的错误数量, 减少调试所花的时间和精力, 改善软件质量, 减少开发和维护的时间和成本。   2

snowphy的专栏 940

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

面向对象先导课程博客作业

不知不觉间,面向对象先导课程(OOpre)已经迎来了尾声。在过去的半个学期里,我们在课上学习了 Java 开发的基本知识,在课下完成了大作业的 5 次迭代和 2 个小作业。这些都为下个学期的面向对象课程(OO)打下了基础。

EricQ2017的博客 218

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【OO学习】OO第四单元作业总结及OO课程总结

【OO学习】OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结   这两次作业架构思路上是一样的。 通过将需要使用的UmlElement,封装成Element的子类。每个子类存储相应的UmlElement,以及需要保存的信息。比如,Class类里保存着这个类的属性、方法以及关系、父类、实现的接口等信息。 Element抽象类有一个...

weixin_30354675的博客 170

Junit总体描述的不错网址

1. 测试框架Junit   http://www.worlduc.com/blog.aspx?bid=1889 2. 用Junit实现java单元测试  http://www.bitscn.com/plus/view.php?aid=23359 3. 单元测试作业指导书Ju

gukesdo的专栏 756

BUAA_OO_博客作业4——UML图及总结

一、总结本单元两次架构设计 作业1: 第一次作业需要使用给定的接口,对一个类图进行解析。 由于观察mdj文件的组织形式是类似树的,因此我大部分的组织形式也跟树相似。并且优先构造Class和Interface,之后再把属性、操作、参数等加入其中,防止接口传入的UmlElement不按照顺序出牌 对于所有的功能,基本都设置了缓存的查找方式:假若没有算过,则当即算一遍;如果已经有结果了,那么直接...

weixin_30675967的博客 185
上一篇: 单元测试作业指导书(一)
下一篇: 单元测试作业指导书(四)
samlet
博客等级 码龄26年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值