JUnitによるユニットテスト †JUnitによるユニットテストの方法を記載する。 (1) 前準備 1.1 junit.jar をビルドパスに追加する。 1.4 ファイル構成 (2) テスト対象クラス仕様の確認 テスト対象となるクラスの仕様は以下の通りとする。
(3) 空のテスト対象クラスを作成する package util; public class MyMath { /* * 足し算 */ public static int add(int a, int b){ return 0; } /* * 引き算 */ public static int sub(int a, int b){ return 0; } /* * 掛け算 */ public static int mul(int a, int b){ return 0; } /* * 割り算 */ public static int div(int a, int b){ return 0; } } ※エラー確認を行う為に、とりあえず全て0を返すように。 (4) テストコードの作成と対象クラスの修正 4.1 テストクラスの作成 1. [MyMath.javaを右クリック] -> [新規] -> [JUnitテスト・ケース] 4.2 テストクラスを下記のようにコーディングする。 package util; import junit.framework.TestCase; /* * MyMathのテストケース */ public class MyMathTest extends TestCase { public MyMathTest(String arg0) { super(arg0); } /** * 足し算のテスト */ public void testAdd() { int res1 = MyMath.add(1,2); assertEquals(3, res1); int res2 = MyMath.add(0,0); assertEquals(0, res2); int res3 = MyMath.add(1,-4); assertEquals(-3, res3); } /** * 引き算のテスト */ public void testSub() { int res1 = MyMath.sub(1,2); assertEquals(-1, res1); int res2 = MyMath.sub(0,0); assertEquals(0, res2); int res3 = MyMath.sub(1,-4); assertEquals(5, res3); } /** * 掛け算のテスト */ public void testMul() { int res1 = MyMath.mul(1,2); assertEquals(2, res1); int res2 = MyMath.mul(0,0); assertEquals(0, res2); int res3 = MyMath.mul(1,-4); assertEquals(-4, res3); int res4 = MyMath.mul(-2,-4); assertEquals(8, res4); } /** * 割り算のテスト */ public void testDiv() { int res1 = MyMath.div(6,2); assertEquals(3, res1); int res2 = MyMath.div(10,6); assertEquals(1, res2); int res3 = MyMath.div(0,10); assertEquals(0, res3); int res4 = MyMath.div(10,0); assertEquals(0, res4); } } (5) テストの実行 5.1 とりあえず一回テストを実行してみる。
5.2 MyMathの各メソッドを下記のように実装して、再度テストを実行。 package util; public class MyMath { /* * 足し算 */ public static int add(int a, int b){ return a + b; } /* * 引き算 */ public static int sub(int a, int b){ return a - b; } /* * 掛け算 */ public static int mul(int a, int b){ return a * b; } /* * 割り算 */ public static int div(int a, int b){ return a / b; } }
5.3 testDivでコケている事がわかるので、障害トレースに表示された情報を元に、 /* * 割り算 */ public static int div(int a, int b){ if (b == 0){ return 0; } else { return a / b; } }
エラーがなくなった。 |