本日のお裾分け

日々の開発で得た知識をシェアします。Java/Scala/Ruby/javascript

JUnit4の検証

参考;http://www.slideshare.net/ichikaz3/junit4

  • 1.assetThat()で使うMatcherのパターン整理

参考;http://qiita.com/opengl-8080/items/e57dab6e1fa5940850a3
基本的な比較 Matcher

is() : 同じ値であることをチェックする
not() : 否定する
nullValue() : null であることをチェックする
notNullValue() : null でないことをチェックする
equalTo() : 同じ値であることをチェックする
comparesEqualTo() : compareTo() で比較する
sameInstance() : 同じインスタンスであることをチェックする
instanceOf() : 指定したクラスのインスタンスであることをチェックする
hasToString() : toString() で比較する

文字列比較に関係する Matcher

startsWith() : 指定した文字で始まることをチェックする
endsWith() : 指定した文字で終わることをチェックする
containsString() : 指定した文字が含まれることをチェックする
equalToIgnoringCase() : 大文字・小文字を区別せずに比較する
equalToIgnoringWhiteSpace() : 大文字・小文字・ブランク文字を無視して比較する
isEmptyString() : 空文字であることをチェックする
isEmptyOrNullString() : 空文字または null であることをチェックする
stringContainsInOrder() : 指定した順序で文字列が現れることをチェックする

数値比較に関係する Matcher

closeTo() : 指定した範囲の値であることをチェックする
greaterThan() : 指定した値より大きいことをチェックする
greaterThanOrEqualTo() : 指定した値以上であることをチェックする
lessThan() : 指定した値より小さいことをチェックする
lessThanOrEqualTo() : 指定した値以下であることをチェックする

Collection・Iterableに関係する Matcher

contains() : 全ての要素が等しいことをチェックする
containsInAnyOrder() : 順序を無視して全ての要素が含まれることをチェックする
hasItem() : 指定した要素を持つことをチェックする
hasItems() : 指定した要素を全て含むことをチェックする
hasSize() : 指定したサイズであることをチェックする
empty() : 空であることをチェックする
emptyCollectionOf() : 指定したクラスの空コレクションであることをチェックする
emptyIterable() : 空の Iterator であることをチェックする
emptyIterableOf() : 指定したクラスの空の Iterator であることをチェックする

Map に関係する Matcher

hasEntry() : 指定したエントリを持つことをチェックする
hasKey() : 指定したキーを持つことをチェックする
hasValue() : 指定した値を持つことをチェックする

JavaBeans に関係する Matcher

hasProperty() : 指定したプロパティを持つことをチェックする
samePropertyValuesAs() : 全てのプロパティが等しいことをチェックする
allOf() : Matcher を AND 条件で結合する
anyOf() : Matcher を OR 条件で結合する
arrayContaining() : 指定した要素と配列の要素が全て等しいことをチェックする
arrayContainingInAnyOrder() : 順序を無視して、指定した要素が全て配列に含まれることをチェックする
arrayWithSize() : 配列のサイズをチェックする
emptyArray() : 配列が空であることをチェックする
hasItemInArray() : 配列の中に指定した値が存在することをチェックする

その他

describedAs() : テストに失敗したときのメッセージを上書きする
isIn() : 配列かコレクションで指定した要素のいずれかに一致することをチェックする
isOneOf() : 可変長引数で指定した値のいずれかに一致することをチェックする
anything() : 全ての値にマッチする

@Test
@RunWith
Suit <- Category
Theory
@Rule
ExpectedException
TemporaryFolder
TestWatcher

  • 3.Matcherの自作

TypeSafeMatcherを拡張する