次のコードがあります。
def f(String s) {
assert !s?.contains('.')
}
アサーションのテストに使用できる Hamcrest マッチャーはどれですか? try
/ブロックを使用できることはわかっていますcatch
が、テストの循環的複雑度を 1 に保つことを好みます。
編集
本当に Hamcrest を使用する必要がある場合は、次のように記述できます。
assertThat( { f( 'hi.ho' ) }, thrown( MyException ) )
ThrownMatcher.thrown(..)
楽しみのために私が書いたマッチャーが必要になります。
ここの要点を参照してください。
しかし、Groovy では、Hamcrest のマッチャーをより強力なコンストラクトに簡単に置き換えることができます。
たとえば、GroovyTestCaseを使用してこれを行うことができます。
shouldFail( MyException, { /* code expected to throw MyException*/ } )
最後に、テストに真剣に取り組んでいる場合は、Spock を使用します。
http://code.google.com/p/spock/wiki/SpockBasics
例
when:
f 'something.something'
then:
thrown( TypeOfException )