Junitユニットテスト
12793 ワード
Junitはユニットテスト、複数のパラメータのユニットテスト、パッケージユニットテストを提供します.
例えばCalculatorクラスを書きました
書き終わったらテストしたい:
テストしたいクラスを右クリックnew,junit,テストしたい方法を選択
testクラスを生成し、このテストクラスを完全に補充します.
このクラスを実行すると、エラーの可視化効果が表示されます.
このクラスのメソッドに複数のテストデータがある場合は、このように書くことができます.
このとき、10個以上のテストクラスを書いたかもしれませんが、1つ1つは面倒です.このとき、欲しいいくつかのテストクラスを複数選択すると、右ボタンnew->junit->Junit Test Suitsでパッケージできます.
このクラスを直接実行すれば、一緒にテストできます.
参照先:http://blog.csdn.net/andycpp/article/details/1329218
例えばCalculatorクラスを書きました
package test_junit;
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;
}
}
書き終わったらテストしたい:
テストしたいクラスを右クリックnew,junit,テストしたい方法を選択
testクラスを生成し、このテストクラスを完全に補充します.
package test_junit;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class CalculatorTest {
private static Calculator calculator = new Calculator();
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAdd() {
calculator.add(2);
calculator.add(3);
assertEquals(5, calculator.getResult());
// fail("Not yet implemented");
}
@Ignore
public void testSubstract() {
calculator.clear();
calculator.add(10);
calculator.substract(2);
assertEquals(8, calculator.getResult());
}
@Test
public void testMultiply() {
// fail("Not yet implemented");
}
@Test
public void testDivide() {
calculator.clear();
calculator.add(8);
calculator.divide(2);
assertEquals(4, calculator.getResult());
}
@Test(timeout = 12)
public void testSquareRoot() {
calculator.squareRoot(8);
// assertEquals(4,calculator.getResult());
}
//@Test(expected = ArithmeticException.class)
@Test
public void divideByZero() {
calculator.divide(0);
}
}
このクラスを実行すると、エラーの可視化効果が表示されます.
このクラスのメソッドに複数のテストデータがある場合は、このように書くことができます.
package test_junit;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import java.util.Arrays;
import java.util.Collection;
@RunWith(Parameterized.class)
public class CalculatorTest2 {
private static Calculator calculator = new Calculator();
private int param;
private int result;
@Parameters
public static Collection data() {
return Arrays.asList(new Object[][] {
{ 2, 4 },
{ 0, 0 },
{ -3, 9 },
});
}
// ,
public CalculatorTest2(int param, int result) {
this.param = param;
this.result = result;
}
@Test
public void square() {
calculator.square(param);
assertEquals(result, calculator.getResult());
}
}
このとき、10個以上のテストクラスを書いたかもしれませんが、1つ1つは面倒です.このとき、欲しいいくつかのテストクラスを複数選択すると、右ボタンnew->junit->Junit Test Suitsでパッケージできます.
package test_junit;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({ CalculatorTest.class, CalculatorTest2.class })
public class AllTests {
}
このクラスを直接実行すれば、一緒にテストできます.
参照先:http://blog.csdn.net/andycpp/article/details/1329218