R42日記スマートフォン用の表示で見るR42日記この日記は私的なものであり所属会社の見解とは無関係です。takahashikznITmediaに寄稿しました。}}というコードをテストする場合を考えます。『doSomethingはiが負数の場合にIllegalArgumentExceptionをスローします。』はJavadocで明示的に宣言している公開API仕様ですから、それを満たすことを確かめる単体テストを行うべきです。JUnitのアノテーションを使うやり方だとこうなる。Sample.doSomething(-1);}try-catchを使うやり方だとこうなる。}}さて、一見したところアノテーションを使う方法のほうが、スッキリ書けてヨサゲな感じです。アノテーションを使う方法だと、『とにかくIllegalArgumentExceptionがスローされれば良い』ということになるため、doSomethingの本体部分で何かの理由によりIllegalArgumentExceptionがスローされてしまっても、テストには成功したように見えてしまいます。成功してしまうわけです。いうわけで、僕は常にtry-catchを使う方法を採用しています。油断すると意外と差が付くこともあるよ、ということでした。ちなみにorg.junit.ExpectedExceptionなるクラスがあるそうです。http://kentbeck.github.com/junit/javadoc/latest/org/junit/rules/ExpectedException.html使い方はこんな感じ。EasyMockのように予め『例外がスローされるよ!』と宣言しておくスタイルのようです。うーむ、なんかイマイチ分かり辛い。いうわけで、僕は使ってません。19:32例外スローのテストをどう書くべきか関連記事2013-08-16POIのXmlValueDisconnectedExceptionを解消するXmlValueDisconnectedException。今日も懲りずにMockitoネタです。近頃、興味深い...2010-12-08doAnswerの使いどころ例えば次のようなクラスFooをテストしたいとします。instrument"になる件lambda-factoryをOpenJ9で動かすおまじない月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。