github地址: https://github.com/yranqiu/Individual-Project-1/blob/master/CalculatorTest
編寫一個Calculator類,這是一個能夠簡單實現加減乘除、平方、開方的計算器類,然後對這些功能進行單元測試。
package andycpp;
public class Calculator {
private static int result; // 靜態變數,用於儲存執行結果
public void add(int n) {
result = result + n;
}
public void substract(int n) {
result = result - 1; //Bug: 正確的應該是 result =result-n
}
public void multiply(int n) {
} // 此方法尚未寫好
public void divide(int n) {
result = result / n;
}
public void square(int n) {
result = n * n;
}
public void squareRoot(int n) {
for (; ;) ; //Bug : 死迴圈
}
public void clear() { // 將結果清零
result = 0;
}
public int getResult() {
return result;
}
}
public class Calculator {
private static int result; // 靜態變數,用於儲存執行結果
public void add(int n) {
result = result + n;
}
public void substract(int n) {
result = result - 1; //Bug: 正確的應該是 result =result-n
}
public void multiply(int n) {
} // 此方法尚未寫好
public void divide(int n) {
result = result / n;
}
public void square(int n) {
result = n * n;
}
public void squareRoot(int n) {
for (; ;) ; //Bug : 死迴圈
}
public void clear() { // 將結果清零
result = 0;
}
public int getResult() {
return result;
}
}
將JUnit4單元測試包引入這個專案
在彈出的屬性視窗中,首先在左邊選擇“Java Build Path”,然後到右上選擇“Libraries”標籤,之後在最右邊點選“Add Library…”按鈕,
然後在新彈出的對話方塊中選擇JUnit4並點選確定,如上圖所示,JUnit4軟體包就被包含進這個專案了。
生成JUnit測試框架:在Eclipse的Package Explorer中用右鍵點選該類彈出選單,選擇“New à JUnit Test Case”。如下圖所示:
在彈出的對話方塊中,進行相應的選擇
點選“下一步”後,系統會自動列出你這個類中包含的方法,選擇你要進行測試的方法。此例中,我們僅對“加、減、乘、除”四個方法進行測試。
完整的CalculatorTest程式碼如下:
package andycpp;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class CalculatorTest {
private static Calculator calculator = new Calculator();
@Before
public void setUp() throws Exception {
calculator.clear();
}
@Test
public void testAdd() {
calculator.add(2);
calculator.add(3);
assertEquals(5, calculator.getResult());
}
@Test
public void testSubstract() {
calculator.add(10);
calculator.substract(2);
assertEquals(8, calculator.getResult());
}
@Ignore("Multiply() Not yet implemented")
@Test
public void testMultiply() {
}
@Test
public void testDivide() {
calculator.add(8);
calculator.divide(2);
assertEquals(4, calculator.getResult());
}
}
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class CalculatorTest {
private static Calculator calculator = new Calculator();
@Before
public void setUp() throws Exception {
calculator.clear();
}
@Test
public void testAdd() {
calculator.add(2);
calculator.add(3);
assertEquals(5, calculator.getResult());
}
@Test
public void testSubstract() {
calculator.add(10);
calculator.substract(2);
assertEquals(8, calculator.getResult());
}
@Ignore("Multiply() Not yet implemented")
@Test
public void testMultiply() {
}
@Test
public void testDivide() {
calculator.add(8);
calculator.divide(2);
assertEquals(4, calculator.getResult());
}
}
執行結果如下:
總結:通過這個實驗,瞭解一些軟體測試的基本含義,學會了一些基本測試的步驟的設計和用例的構造。初步學會了junit4的使用,瞭解到基本流程和實現。