Dartのmatcherを一覧にしてみました。
Core
matcher |
|
isEmpty |
item.isEmpty |
isNotEmpty |
item.isNotEmpty |
isNull |
item == null |
isNotNull |
item != null |
isTrue |
item == true |
isFalse |
item == false |
isNaN |
double.nan.compareTo(item) == 0 |
isNotNaN |
double.nan.compareTo(item) != 0 |
same(expected) |
identical(item, _expected) |
anything |
true |
returnsNormally |
例外が発生ぜずに関数としてコールできればpass |
isMap |
item is Map |
isList |
item is List |
hasLength(matcher) |
item.length >= 0 && matcher |
contains(expected) |
itemの中にexpectedが含まれていればpass |
isIn(expected) |
itemがexpectedの中に含まれていればpass(containsの逆) |
predicate<T>(bool f(T value)) |
boolを返す任意の関数を指定できる |
Operator
matcher |
|
equals(expected) |
item == expected |
isNot(matcher) |
!matcher |
allOf(arg0, [arg1, arg2, arg3, arg4, arg5, arg6]) |
全てにmatchすればpass |
anyOf(arg0, [arg1, arg2, arg3, arg4, arg5, arg6]) |
いずれかにmatchすればpass |
greaterThan(value) |
item > value |
greaterThanOrEqualTo(value) |
item >= value |
lessThan(value) |
item < value |
lessThanOrEqualTo(value) |
item <= value |
Type
Numeric
matcher |
|
closeTo(value, delta) |
abs(item - value) <= delta |
inInclusiveRange(low, high) |
low <= item && item <= high |
inExclusiveRange(low, high) |
low < item && item < high |
inOpenClosedRange(low, high) |
low < item && item <= high |
inClosedOpenRange(low, high) |
low <= item && item < high |
isZero |
item == 0 |
isNonZero |
item != 0 |
isPositive |
item > 0 |
isNonPositive |
item > 0 == false |
isNegative |
item < 0 |
isNonNegative |
item < 0 == false |
String
matcher |
|
equalsIgnoringCase(value) |
大文字、小文字を無視して比較 |
equalsIgnoringWhitespace(value) |
空白文字を無視して比較 |
startsWith(prefixString) |
前方一致で比較 |
endsWith(suffixString) |
後方一致で比較 |
stringContainsInOrder(substrings) |
各文字列が順序通りに含まれていればpass |
matches(re) |
正規表現にマッチしていればpass |
Iterable
matcher |
|
everyElement(matcher) |
全ての要素がmatcherとマッチすればpass |
anyElement(matcher) |
どれかの要素がmatcherとマッチすればpass |
orderedEquals(expected) |
要素数と要素の順番が一致していればpass |
unorderedEquals(expected) |
順番が異なっていても要素数と各要素が一致していればpass |
unorderedMatches(expected) |
unorderedEqualsと同様だが、expectedにmatcherを指定する |
pairwiseCompare<S, T>(expected, bool comparator(S a, T b) |
任意の比較関数を指定できる |
containsAll(expected) |
全ての値が含まれていればpass |
containsAllInOrder(expected) |
全ての値が順番通り含まれていればpass |
Map
matcher |
|
containsValue(value) |
item.containsValue(value) |
containsPair(key, value) |
item.containsKey(key) && item[key]がvalueのmatcherをpass |
Feature
matcher |
|
completes |
終了すればpass |
completion(matcher) |
終了してmatcherにマッチする値を返せばpass |
doesNotComplete |
終了しなければpass |
Stream
matcher |
|
emitsDone |
次にdoneイベントが発行されればpass |
emits(matcher) |
次にmatcherに一致する値が発行されればpass |
emitsError(matcher) |
次にmatcherに一致するエラーが発行されればpass |
mayEmit(matcher) |
常にpass。matcherに一致した値が発行されたら終了する |
emitsAnyOf(matchers) |
matchersのどれかにマッチする値が発行されればpass |
emitsInOrder(matchers) |
matchersにマッチする値が順番通りに発行されればpass |
emitsThrough(matcher) |
matcherに一致する値が一回以上発行されればpass |
mayEmitMultiple(matcher) |
常にpass。mayEmitと異なり、複数回マッチする |
neverEmits(matcher) |
matcherに一致する値が発行されなければpass |
emitsInAnyOrder(matchers) |
matchersにマッチする値が発行されればpass |
Throws
matcher |
|
throwsA(matcher) |
関数やFeatureが例外をthrowすればpass |
throwsArgumentError |
throw ArgumentError |
throwsConcurrentModificationError |
throw ConcurrentModificationError |
throwsCyclicInitializationError |
throw CyclicInitializationError |
throwsException |
throw Exception |
throwsFormatException |
throw FormatException |
throwsNoSuchMethodError |
throw NoSuchMethodError |
throwsNullThrownError |
throw NullThrownError |
throwsRangeError |
throw RangeError |
throwsStateError |
throw StateError |
throwsUnimplementedError |
throw UnimplementedError |
throwsUnsupportedError |
throw UnsupportedError |
Error
matcher |
|
isArgumentError |
item is ArgumentError |
isCastError |
item is CastError |
isConcurrentModificationError |
item is ConcurrentModificationError |
isCyclicInitializationError |
item is CyclicInitializationError |
isException |
item is Exception |
isFormatException |
item is FormatException |
isNoSuchMethodError |
item is NoSuchMethodError |
isNullThrownError |
item is NullThrownError |
isRangeError |
item is RangeError |
isStateError |
item is StateError |
isUnimplementedError |
item is UnimplementedError |
isUnsupportedError |
item is UnsupportedError |
参考リンク
dart-lang/test: A library for writing unit tests in Dart.
dart-lang/matcher: A declarative API for specifying expectations.
matcher library - Dart API