JUnit+Ant构建自动的单元测试
IDE:Eclipse
系统:win7
主要用于动态白盒测试,运行代码时对结果进行检查和验证。Eclipse中已经集成了Ant(下载windows版和Linux版)和JUnit,可以在Eclipse中运行。
Ant可以从“Window”–>”Preferences”–>”Ant”修改相应的配置。
JUnit修改路径“Window”–>”Preferences”–>”Java”–>”JUnit”。
构建类
以三角形判断方法为例进行测试
package test;
public class Triangle {
/**
*
* 要求:每条边的值应该满足[0,100],非法输入返回-1
* 功能:输入三个整数,判断这三个整数是否可以组成一个三角形的三条边,
* 如果能够组成一个三角形,判断它组成的三角形是正三角形、等腰三角形还是普通的三角形。
* 如果能组成等边三角形,返回结果为3,如果能组成等腰三角形,返回结果为2,
* 如果能组成普通三角形,返回结构为1,如果不能组成三角形,返回结果为0。
*
* @param a 三角形第一条边
* @param b 三角形第二条边
* @param c 三角形第三条边
* @return 三角形类型
*
*
*/
public Integer judgeTrangle(int a, int b, int c){
//非法输入
if (a<0 || b<0 || c<0) return -1;
if (a>100 || b>100 || c>100) return -1;
//等边三角形返回3
if ( a==b && b==c) return 3;
//等腰三角形返回2
else if ( a==b || b==c || a==c) return 2;
//三角形返回1
else if (a+b>c && b+c>a && a+c>b) return 1;
//非三角形返回0
else return 0;
}
}
构建测试用例
JUnit 4是配合JDK 1.5版本的,与之对应的Ant需要在1.7版本之上。
选择添加JUnit 4(JUnit 5来了!)
从项目右键–>”Build Path”–>”Add Library”处添加,又或者如图
创建测试用例,最好还是和被测试的类分开
可以从File->New->JUnit Test Case创建,选择相关的类(如这里是Triangle)
然后修改其中的测试方法
@Test
public void testJudgeTrangle() {
//fail("Not yet implemented"); // TODO
Triangle t = new Triangle();
assertEquals(new Integer(0), t.judgeTrangle(3, 4, 5));
}
其中的3, 4, 5对应三角形的三边,new Integer(0)为预期结果。
运行
Ant自动化
首先为项目添加ant脚本
“File”–>”Export”,选择Ant Buildfiles,选择项目,就会自动在项目的根目录下生成build.xml,ant的构建全依赖此。
它自动地为测试用例生成了task,在cmd中ant TriangleTest就会运行,当然了,必须在当前项目内才行。
<target name="TriangleTest">
<mkdir dir="${junit.output.dir}"/>
<junit fork="yes" printsummary="withOutAndErr">
<formatter type="xml"/>
<test name="test.TriangleTest" todir="${junit.output.dir}"/>
<classpath refid="UnitTest.classpath"/>
</junit>
</target>
运行测试
在build.xml中右键打开,选择“Run As”–>”Ant Build”(第二个),只勾选TriangleTest,然后点击Run运行即可。
效果如图
同时也自动构建了junitreport这个task用于生成英文版网页形式的测试报告
如果想要将其移植的话,就需要将依赖的jar直接添加到项目中,然后修改其中的classpath。
例如
不然启动不了
以main方法运行
新建TestRunner负责调用测试用例,用TestResult收集执行TestCase结果,显示测试结果。
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestTriangle.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
这篇博客介绍了如何在Eclipse环境下利用JUnit和Ant构建自动的单元测试。通过创建测试类,设置JUnit 4测试用例,并配置Ant脚本实现自动化测试。详细步骤包括构建类、构建测试用例、Ant自动化运行以及通过main方法运行测试。
5193

被折叠的 条评论
为什么被折叠?



