author: scruffybear

release time: 04/01/2007

company: Watchdata  

如有转载,请注明出处,并保持文章的完整性,谢谢!  

    JUnit就是对程序代码进行单元测试的一种Java框架。实际上是一个Java类包可以用来编写自动化测试工具,这样就可以运行程序进行反复测试,减少测试的难度以及减少编写程序的错误。有了这个工具,在了解程序的外部特性的情况下,就可以在编写程序之前就可以进行编写测试工具,与发同时进行。仅用一个小例子来说明:

   首先下载一个Junit包,可以到其官方网站上去下载http://www.junit.org/index.htm,

   由于这里下载太慢,我是在baidu里输入junit.jar来搜索找到的。

   编写一个简单的类Car.java
   内容为:

public class Car
{
public int getWheels(){
return 4;
}
}



编写Junit测试程序,文件名为testCar.java,内容为:

//执行测试的类(JUnit版) 
import junit.framework.*;

public class testCar extends TestCase
{
protected int expectedWheels;
protected Car myCar;

public testCar(String name)
{
super(name);
}


protected void setUp()
{
expectedWheels = 4;
myCar = new Car();
}


public static Test suite()
{
/** the type safe way */

TestSuite suite= new TestSuite();
suite.addTest(
new testCar("Car.getWheels")
{
protected void runTest()
{
testGetWheels();
}
}
);
return suite;

/** the dynamic way */
//return new TestSuite(testCar.class);
}

public void testGetWheels()
{
assertEqual*(expectedWheels , myCar.getWheels());
}
}



最后就可以对所编写的Car类进行测试了。在命令行中输入以下命令:
D:/thinking in java/eclipse/thinkinginjava>java junit.textui.TestRunner

testCar
.
Time: 0

OK (1 test)

如果把expectedWheel*的值改动为不是4,例如改为**pectedWheels = 3; 再进行测试:
如果如下:
D:/thinking in java/eclipse/thinkinginjava>java junit.textui.TestRunner

testCar
.F
Time: 0
There was 1 failure:
1) Car.getWheels(testCar$1)junit.framework.AssertionFailedError: expected:<3>

but was:<4>
        at testCar.testGetWheels(testCar.java:44)
        at testCar$1.runTest(testCar.java:32)

FAILURES!!!
Tests run: 1,  Failures: 1,  Errors: 0
  在“.”后有一个F,表明有一个错误。接着说明是在Car.getWheels方法出错,并详细说明了是哪里出错。
  这是网上一个经典的案例,我只不过是重新照着做了一遍。在网上搜索“JUnit实战”即可搜到。
  
  没有进行深入研究,网上有很多文章,列几个:

​​​http://hedong.3322.org/archives/000224.html​​​