Kotest コレクションマッチャー(Collection Matchers)

Collection、Iterable、Array 型で使用できる豊富なマッチャーを紹介する。

コレクションの複数要素をテストする便利な方法として、インスペクターも参照する。

Collections
collection.shouldBeEmpty() コレクションの要素数が 0 であることを確認する。
collection.shouldBeUnique() コレクション内のすべての要素が自然な等価性で一意であることを確認する。
collection.shouldBeUnique(comparator) 指定した comparator で比較し、すべての要素が一意であることを確認する。
collection.shouldContain(element) コレクションに指定した要素が含まれることを確認する。
collection.shouldContainAll(e1, e2, ..., en) 順序に関係なく、列挙したすべての要素がコレクションに含まれることを確認する。
collection.shouldContainDuplicates() コレクションに少なくとも 1 つの重複要素が含まれることを確認する。
collection.shouldContainExactly() コレクションが指定した値だけを順序どおりに含み、他の値を含まないことを確認する。
collection.shouldContainExactlyInAnyOrder() コレクションが指定した値だけを任意の順序で正確に含み、それ以外を含まないことを確認する。
collection.shouldContainAllInAnyOrder() コレクションが指定したすべての値を任意の順序で含み、他の値を含まないことを確認する。
collection.shouldContainNoNulls() コレクションに null 要素がない、または空であることを確認する。
collection.shouldContainNull() コレクションに少なくとも 1 つの null 要素が含まれることを確認する。
collection.shouldContainOnlyNulls() コレクションに null 要素だけが含まれる、または空であることを確認する。
collection.shouldContainAllIgnoringFields() 1 つ以上のフィールドを無視して、列挙したすべての要素がコレクションに含まれることを確認する。
collection.shouldHaveSingleElement(element) コレクションに単一の要素だけが含まれ、それが指定した要素であることを確認する。
collection.shouldHaveSingleElement { block } 指定した述語に一致する単一の要素がコレクションに含まれることを確認する。
collection.shouldHaveSize(length) コレクションの長さが指定した値と正確に一致することを確認する。
collection.shouldBeSingleton() コレクションに要素が 1 つだけ含まれることを確認する。
collection.shouldBeSingleton { block } コレクションに要素が 1 つだけ含まれることを確認し、その要素でブロックを実行する。
collection.shouldHaveLowerBound(element) 指定した要素がコレクション内のすべての要素以下であることを確認する。Comparable を実装する要素にのみ機能する。
collection.shouldHaveUpperBound(element) 指定した要素がコレクション内のすべての要素以上であることを確認する。Comparable を実装する要素にのみ機能する。
collection.shouldBeSmallerThan(col) コレクションが別のコレクションより小さいことを確認する。
collection.shouldBeLargerThan(col) コレクションが別のコレクションより大きいことを確認する。
collection.shouldBeSameSizeAs(col) コレクションのサイズが別のコレクションと同じであることを確認する。
collection.shouldHaveAtLeastSize(n) コレクションのサイズが n 以上であることを確認する。
collection.shouldHaveAtMostSize(n) コレクションのサイズが n 以下であることを確認する。
list.shouldBeSorted() リストがソートされていることを確認する。
list.shouldBeSortedBy { transform } 変換を適用した後の値を基準にリストがソートされていることを確認する。
list.shouldContainInOrder(other) このリストが指定したリストを順序どおりに含むことを確認する。指定したリストの前後に他の要素があってもよい。
list.shouldExistInOrder({ element }, ...) 述語に一致する要素が順序どおりに含まれることを確認する。一致要素の周囲や間に他の要素があってもよい。
list.shouldHaveElementAt(index, element) このリストの指定位置に指定要素が含まれることを確認する。
list.shouldStartWith(lst) このリストが指定したリストの要素で順序どおりに始まることを確認する。
list.shouldEndWith(lst) このリストが指定したリストの要素で順序どおりに終わることを確認する。
iterable.shouldMatchEach(assertions) このリストとアサーションを反復し、各要素が対応するアサーションに成功することを確認する。コレクションサイズが一致しない場合は失敗する。
iterable.shouldMatchInOrder(assertions) この iterable に、隙間なしで順序どおりにアサーションと一致する部分列があることを確認する。
iterable.shouldMatchInOrderSubset(assertions) この iterable に、隙間を許可して順序どおりにアサーションと一致する部分列があることを確認する。
value.shouldBeOneOf(collection) 特定のインスタンスがコレクションに含まれることを確認する。
collection.shouldContainAnyOf(collection) コレクションに、指定したコレクションの要素が少なくとも 1 つ含まれることを確認する。
value.shouldBeIn(collection) オブジェクトが参照ではなく値としてコレクションに含まれることを確認する。

参照