我目前正在扩展Degraph以检查是否违反了依赖规则。
到目前为止,我已经为ScalaTest创建了匹配器,因为这是我最喜欢的JVM测试库。但许多其他人更喜欢或不得不使用其他库。所以我想为那些提供匹配器(或任何适当的等价物)。
另一方面,我很懒,所以我不想为每个可以设想的图书馆提供匹配。
所以问题是:
是否有某种匹配库可以在所有(或最多/多个)测试库中使用?或者也许是一个将Hamcrest匹配器转换为所有其他库的匹配器的包装器?
我想支持的图书馆(按照重要性顺序):
答案 0 :(得分:1)
assertThat(T value, Matcher<T> matcher)
返回AssertionError
,Hamcrest matcher.matches(value)
会抛出false
。因此,Hamcrest应该与大多数测试框架一起开箱即用。对于其他库,例如构建模拟对象,您需要本机使用Hamcrest的Matcher
对象或编写集成层。一种方法是创建一个装饰任何匹配器的方法,例如*,
ArgumentMatcher<T> decorate(final Matcher<T> matcher) {
return new ArgumentMatcher() {
public boolean <T> accepts(T value) {
return matcher.matches(value);
}
}
}
*这是一个使用理论模拟API的人为例子。