寝坊対策にTimeoutを設定する
『JUnit実践入門』写経・実践会 in 大阪 - connpass を開催しました!
寝坊しました
こんなテストになってたんですよ。
@Test public void 起きられる() throws Exception { sut.wakeUp(); assertThat(sut.isAwake(), is(true)); }
「どんなに時間がかかっても起きればOK!」となっていたので、寝坊しようがしまいがGREENになってしまってたんです。
タイムアウトを設定する
@Test(timeout=1000) public void 起きられる() throws Exception { sut.wakeUp(); assertThat(sut.isAwake(), is(true)); }
これで「時間以内に起きられなければ失敗する」テストになりました。寝坊したらちゃんとREDになるので安心ですね!
詳しくはJUnit実践入門のP.52, 151 をご参照下さい。
JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)
- 作者: 渡辺修司
- 出版社/メーカー: 技術評論社
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 273回
- この商品を含むブログ (68件) を見る
蛇足
起こされる対象がwakeUpを持つのはどうなんだとか、時間かかるのはどこなんだとか、getStatusにStatus返させてコールバックするのがいいんじゃないかとか、なんとか。
あとgetUpメソッドにしようとしたらUpが取得できそうでこまるとか、そんな話してました。真面目にクラス設計考えると終わらないのでこれで。