20150703 『断捨離』TDDとは
- 30. や の が仲間 明日 自分
なんだこれ… ( ; ´ Д
` )
って
を えないコードの頭 抱
こと
- 39. @Test
public void testGetLargeNum () {
TwoNumber twoNum = new TwoNumber(1, 5);
assertThat(twoNum.getLargeNum(), is(5));
}
public int getLargeNum () {
return 0;
} RED…
2つの を して、 きい を す整数 渡 大 方 返
- 40. いたテストを させる書 成功
@Test
public void testGetLargeNum () {
TwoNumber twoNum = new TwoNumber(1, 5);
assertThat(twoNum.getLargeNum(), is(5));
}
public int getLargeNum () {
return y;
}
GREEEEEEEEEN!!!!
- 41. のテストを く、 する次 書 失敗
@Test
public void testGetLargeNum2 () {
TwoNumber twoNum = new TwoNumber(6, 2);
assertThat(twoNum.getLargeNum(), is(6));
}
public int getLargeNum () {
return y;
} RED…
- 42. いたテストを させる書 成功
public int getLargeNum () {
int result = 0;
if ( x > y ) {
result = x;
} else {
result = y;
}
return result;
}
GREEEEEEEEEN!!!!
- 43. を したまま、お する成功 維持 掃除
public int getLargeNum() {
return x < y ? y : x;
}
GREEEEEEEEEN!!!!
Hinweis der Redaktion
- 「断捨離」
聞いたことある言葉だと思いますが
こんな意味でした。
- 既存のコードを読んでみたけど、複雑すぎてよくわからない
よくわからないから、変えるのが危険
- 色んなことしてて、結局なにしてくれる人なのかよくわからない
- 本番での経験はないと祈りますが (つぎへ
- 具体的には・・・・・(つぎへ
- つまりは!(つぎへ
- 動く、キレイ という2つの要素があるので、2つを達成するまでの道のりは2つあります
- こだわり出したらキリがないです
- 作ってみたら他とあわないってことが起きやすいです
- いくらおしゃれでも、ドアが開かなくなる場所に家具は置けないですよね
- 「この引数を渡したら、こんな戻り値がほしい」といった目標をひとつ考えて、それをテストコードに落とします
当然、未実装なのでこのテストは失敗します
その後、テストが成功するように目的のコードを書きます
テストが成功したら、成功を維持したまま、中身をきれいにしていきます
- Javaでサンプルを書いてみました
2つの整数を引数に渡したら、値が大きい方を返すメソッドを作るとします
1と5を渡したら、5を返してほしいので期待値は5になります
当然、このとき目的のコードは未実装なので、0が返されて失敗します
- テストが成功するように、コードを直します
第一引数からx, yだったとすると、とりあえずyを返せば成功しますよね
これ以上お掃除できなそうなので、次のテストを考えます
- 同じメソッドに、次のパターンのテストを書きます
今度は6と2を渡したら、期待値は6です
先ほどのコードだと、第2引数を固定で返すので、このテストは失敗します
- 1つめと2つめ、両方のテストが成功するようにコードを修正します
テストは成功したけど、なんかもっと簡単に書けそうですよね
- というわけで、テストの成功を維持したまま、中身をお掃除します
こんなに短くなったw
- というふうに
テストを書く 失敗する
成功させる
お掃除する
というサイクルを繰り返していきます