您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
全面認(rèn)識JUnit 4的特征
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/4 15:58:25 ] 推薦標(biāo)簽:

二、遷移一個(gè)測試類

現(xiàn)在,我將把一個(gè)已經(jīng)使用JUnit 3.8編寫成的簡單的測試類遷移到JUnit 4。這個(gè)類有一些缺陷:它沒有測試所有的業(yè)務(wù)方法,而且看上去在testDivide方法中還存在一個(gè)錯誤(8/2不等于5)。因?yàn)檫沒有實(shí)現(xiàn)乘法運(yùn)算功能,所以對其測試將被忽略。

下面,我們把兩個(gè)版本的框架之間的差別以粗體顯示出現(xiàn)于表格1中。

表格1.分別以JUnit 3.8和JUnit 4實(shí)現(xiàn)的CaculatorTest。

JUnit 3.8

package junit3;

import calc.Calculator;

import junit.Framework.TestCase;

public class CalculatorTest extends TestCase {

 private static Calculator calculator = new Calculator();

 @Override protected void setUp() { calculator.clear(); }

 public void testAdd() {

calculator.add(1);

calculator.add(1);

assertEquals(calculator.getResult(), 2);

 }

 public void testSubtract() {

calculator.add(10);

calculator.subtract(2);

assertEquals(calculator.getResult(), 8);

 }

 public void testDivide() {

calculator.add(8);

calculator.divide(2);

assert calculator.getResult() == 5;

 }

 public void testDivideByZero() {

try {

 calculator.divide(0);

 fail();

}

catch (ArithmeticException e) { }

 }

 public void notReadyYetTestMultiply() {

calculator.add(10);

calculator.multiply(10);

assertEquals(calculator.getResult(), 100);

 }

}
 

JUnit 4

package JUnit 4;

import calc.Calculator;

import org.junit.Before;

import org.junit.Ignore;

import org.junit.Test;

import static org.junit.Assert.*;

public class CalculatorTest {

 private static Calculator calculator = new Calculator();

 @Before public void clearCalculator() {

calculator.clear();

 }

 @Test public void add() {

calculator.add(1);

calculator.add(1);

assertEquals(calculator.getResult(), 2);

 }

 @Test public void subtract() {

calculator.add(10);

calculator.subtract(2);

assertEquals(calculator.getResult(), 8);

 }

 @Test public void divide() {

calculator.add(8);

calculator.divide(2);

assert calculator.getResult() == 5;

 }

 @Test(expected = ArithmeticException.class)

 public void divideByZero() {

calculator.divide(0);

 }

 @Ignore("not ready yet")

 @Test

 public void multiply() {

calculator.add(10);

calculator.multiply(10);

assertEquals(calculator.getResult(), 100);

 }

}

上一頁12345下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd