首先將JUnit插件安裝到Eclipse或myeclipse里面,編寫完一個模塊或者實體類的時候,直接右擊,new一個JUnit項目,選擇你想測試的實體類(模塊),然后會自動生成一個類,這個類,我們將其叫做驅動類,是為了在其中加載測試數據用的(這個類里不再寫main方法)。具體操作請參見陳磊興先生的博客,寫的很詳細。http://blog.csdn.net/chenleixing/article/details/44259453
下面,我也介紹一個簡單的JUnit測試例子,來練練手。
題目:
1) 編寫判斷三角形類型的類Triangle及方法,編寫InvalidTriangleException異常類,為Triangle類編寫測試類、簡單測試方法、異常測試方法。
需求:實現一個判斷三角形類型的方法.
- 輸入:三角形的三條邊(要求:三個整型數)。
- 輸出:三角形的類型(要求:識別等邊三角形、等腰三角形、直角三角形和普通三角形)。
- 異常:輸入三條邊不能構成三角形時,拋出NotTriangleException,該異常類代碼如下:
public class TriangleException extends Exception {
public TriangleException() {}
public TriangleException(String message) {
super(message);
}
}
作答代碼:已省略導包,異常測試。
public class Triangle {
private double a;
private double b;
private double c;
private String type;
public Triangle(double a, double b, double c) {
super();
this.a = a;
this.b = b;
this.c = c;
}
public boolean IsTriangle(){//判斷三角形
if(a+b<=c || a+c<=b || b+c<=a){
return false;
}
else{
return true;
}
}
public String cal_type(){
if(IsTriangle()){
if(a==b && a==c){
type = "等邊三角形";
}
else
if(a==b || b==c || a==c){
type = "等腰三角形";
}
else{
type = "普通三角形";
}
//如果能構成直角三角形 覆蓋type
if(a*a+b*b==c*c){
type = "直角三角形";
}
return type;
}
else
return "這不是三角形";//可在此拋出異常
}
}
JUnit測試類
public class TriangleTest {
@Test
public void test1() {
Triangle test1 = new Triangle(3,3,3);
String rs = test1.cal_type();
System.out.println(rs);
assertTrue(rs == "等邊三角形");
}
@Test
public void test2() {
Triangle test2 = new Triangle(3,7,9);
String rs = test2.cal_type();
System.out.println(rs);
assertTrue(rs == "普通三角形");
}
@Test
public void test3() {
Triangle test3 = new Triangle(1,2,3);
String rs = test3.cal_type();
System.out.println(rs);
assertTrue(rs == "這不是三角形");
}
@Test
public void test4() {
Triangle test4 = new Triangle(3,4,5);
String rs = test4.cal_type();
System.out.println(rs);
assertTrue(rs == "直角三角形");
}
@Test
public void test5() {
Triangle test5 = new Triangle(3,4,3);
String rs = test5.cal_type();
System.out.println(rs);
assertTrue(rs == "等腰三角形");
}
}
運行:
左邊是綠色的,表示該測試用例驗證成功。
當然,按照以上這種做法,每添加一個測試用例,就得寫一個test方法。事實上,我們可以重寫JUnit測試驅動類的構造方法(可自動生成),使其為有參構造,我們以集合的方式往驅動類里面傳送數組參數,達到減少代碼量的目的。
