TDDに挑戦【Java】
TDDとはTest Driven Development(テスト駆動開発)の略です。
テストコードを書いてから実装しましょう、という開発手法です。
今回は実際にどうやるのか
バグがないプログラムのつくり方 JavaとEclipseで学ぶTDDテスト駆動開発 (Be agile!)
- 作者: 川端光義,倉貫義人,兒玉督司
- 出版社/メーカー: 翔泳社
- 発売日: 2004/09/22
- メディア: 単行本
- 購入: 9人 クリック: 162回
- この商品を含むブログ (48件) を見る
TDDの流れ
(1) テストコードを書く
assertEquals(期待値, 実行するもの);
(2) 仮実装
とりあえずコンパイルが通るものを作成。
(3) テスト
テストするファイルを右クリック→実行→JUnitテスト
(4) 失敗(JUnitモジュールが赤色に)※1
(5) テストを成功させるための最小限の実装
(6) テスト
(7) 成功(緑色)
(8) Triangulation(三角測量)=テストケースの追加
(9) 失敗(赤色)
(10) すべてのテストを通過できるようリファクタリング※2
(11) テスト成功!!
※1 失敗の理由はJUnitのモジュールにある
▷Goods.java
▷TestGetTaxIncludedPrice.java←該当ソースコードをクリック
すると、下にある障害トレースという項目に表示されます。
※2 リファクタリングとは
・コードの重複排除
・汎用化
試した環境とソースコード
環境
Eclipse Indigo JUnit version3.8.2 JDK
ソースコード
GoodsTest.java
import junit.framework.TestCase; public class GoodsTest extends TestCase { public GoodsTest(String name) { super(name); } public void testGetGoodsPrice() { Goods ice = new Goods(100); assertEquals(100, ice.getPrice()); } public void testGetTaxIncludedPrice() { Goods ice = new Goods(100); assertEquals(105, ice.getTaxIncludedPrice()); Goods handkerchief = new Goods(500); assertEquals(525, handkerchief.getTaxIncludedPrice()); } }
Goods.java
public class Goods { private int unitPrice = 0; public Goods(int unitPrice) { this.unitPrice = unitPrice; } public Object getPrice() { return this.unitPrice; } public Object getTaxIncludedPrice() { return (int) (this.unitPrice * 1.05); } }