step1:
右键点击java文件A--->new-->junit test case,即可产生一个test case,默认会将A中的非私有方法前都加上test
step2:
编写该case,下面是个简单的例子:
public class AirTest extends TestCase {
private Air air;
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
air = new Air();
}
/*
* @see TestCase#tearDown()
*/
protected void tearDown() throws Exception {
}
/*
* Class under test for double h(double, double)
*/
public void testH() {
double result=air.h(0,400);
assertEquals(400.07,result,400.07*0.01);
}
/*
* Class under test for double cp(double, double)
*/
public void testCp() {
double result=air.cp(0,400);
assertEquals(1.0161,result,1.0161*0.01);
}
/*
* Class under test for double cv(double, double)
*/
public void testCv() {
double result=air.cv(0,400);
assertEquals(0.7291,result,0.7291*0.01);
}
}
很明显,我写了个Air类,有3个函数,分别计算定压比热、焓和定容比热,AirTest 就是来测试这三个函数,注意每个函数内部的assertEquals,参数1时预定的值,参数2是程序算出的值,参数3是允许的误差范围
step3
点击Run...按纽----》选择junit--》点击new---》运行就会弹出junit的结果窗口,显示运行结果
后记:
完全可以将junit任务集成到ant中,在ant加如下片段即可
<!-- 测试 -->
<target name="test" depends="compile" description="run junit test">
<mkdir dir="${report.dir}" />
<junit printsummary="on" haltonfailure="false" failureproperty="tests.failed" showoutput="true">
<classpath refid="master-classpath" />
<formatter type="xml" />
<batchtest todir="${report.dir}">
<fileset dir="${classes.dir}">
<include name="test/**" />
</fileset>
</batchtest>
</junit>
<fail if="tests.failed">
***********************************************************
**** One or more tests failed! Check the output ... ****
***********************************************************
</fail>
</target>
运行ant即可完成测试,但里面有个恼人的问题,就是ant居然不认junit这个任务,看看ant home 里面确实有ant--junit.jar,就算再将junit.jar放在该目录也不行!郁闷,但可以通过下面的方法解决:window-->preferences-->ant-->runtime-->classpath,到入junit.jar即可,很奇怪的是classpath中ant-junit.jar真不知道是干嘛的,非要放入junit.jar才行