Jez*_*mon 5 dart dart-unittest dart-mock
我正在使用 mockito 编写一个单元测试来模拟依赖项并检查我们是否使用正确的参数调用它。我们应该传入一个字符串,因此我尝试匹配该函数参数,但不会对整个字符串进行断言,以防我们更改措辞。所以我只想匹配消息中的一个词,但该词可能位于句子的开头或中间,因此它可能以大写开头。
dart 匹配器具有equalsIgnoringCase和contains,但我找不到处理这两者的匹配器,例如 containsIgnoringCase。有没有办法检查子字符串,同时忽略匹配器中的大小写?
小智 15
您可以将正则表达式传递给属性设置为的contains方法。caseSensitivefalse
string.contains(new RegExp(r'your-substring', caseSensitive: false));
Run Code Online (Sandbox Code Playgroud)
由于OP更新了问题,限制它应该是一个Matcher(对于mockito):
可以使用任意代码创建匹配器predicate。在这种情况下,使用 Ajmal 的答案:
Matcher containsSubstringNoCase(String substring) =>
predicate((String expected) => expected.contains(RegExp(substring, caseSensitive: false)));
Run Code Online (Sandbox Code Playgroud)
然后:
expect('Foo', containsSubstringNoCase('foo')); // true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5292 次 |
| 最近记录: |