Junit 4.xユニットテスト、パラメトリックテスト、スイートテストの例
8188 ワード
次の3つのクラスに対してユニットテストを行い、スイートテストを構成します.
テストコード:テストコードをtestソースファイルに置くことをお勧めします
テストキットコード:
以下のパラメータでCalculateクラスのaddメソッドをパラメータ化してテストしてください
{2,1,1},
{2,0,2},
{0,2,-2},
public class Calculate {
public int add(int a, int b) {
return a + b;
}
public int sub(int a, int b) {
return a - b;
}
}
public class Car {
public int getWheels() {
return 4;
}
}
public class Rectangle{
public int getArea(int width,int height){
return width*height;
}
}
テストコード:テストコードをtestソースファイルに置くことをお勧めします
public class CalculateTest {
Calculate calculate;
@Before
public void setUp() throws Exception {
calculate = new Calculate();
}
@Test
public void testAdd() {
int result = calculate.add(12, 12);
assertEquals(24, result);
}
@Test
public void testSub() {
int result = calculate.sub(12, 12);
assertEquals(0, result);
}
}
public class CarTest {
Car car;
@Before
public void setUp() throws Exception {
car = new Car();
}
@Test
public void testGetWheels() {
int result = car.getWheels();
assertEquals(4, result);
}
}
public class RectangleTest {
Rectangle rectangle;
@Before
public void setUp() throws Exception {
rectangle=new Rectangle();
}
@Test
public void testGetArea() {
int result = rectangle.getArea(12, 2);
assertEquals(24, result);
}
}
テストキットコード:
@RunWith(Suite.class)
@SuiteClasses({ CalculateTest.class, CarTest.class, RectangleTest.class })
public class AllTests {
}
以下のパラメータでCalculateクラスのaddメソッドをパラメータ化してテストしてください
{2,1,1},
{2,0,2},
{0,2,-2},
@RunWith(Parameterized.class)
public class CalculateTest2 {
Calculate calculate;
private int input1;
private int input2;
private int expected;
@Parameters
public static Collection prepareData() {
Object[][] object = { { -1, -2, -3 }, { 0, 2, 2 }, { -1, 1, 0 },
{ 1, 2, 3 } };
return Arrays.asList(object);
}
public CalculateTest2(int input1, int input2, int expected) {
this.input1 = input1;
this.input2 = input2;
this.expected = expected;
}
@Before
public void setUp() throws Exception {
calculate = new Calculate();
}
@Test
public void testAdd() {
int result = calculate.add(input1, input2);
assertEquals(expected, result);
}
}