gpt4 book ai didi

testing - 如何为所有重要的测试库编写匹配器?

转载 作者:行者123 更新时间:2023-11-28 20:00:23 24 4
gpt4 key购买 nike

我目前正在扩展 Degraph检查是否违反依赖规则。

到目前为止,我已经为 ScalaTest 创建了匹配器,因为这是我最喜欢的 JVM 测试库。但许多其他人更喜欢或不得不使用其他库。所以我也想为这些提供匹配器(或任何合适的等价物)。

另一方面,我很懒惰,所以我不想为每个可以想到的库提供一个匹配器。

所以问题是:

是否有某种匹配器库可以在所有(或大多数/许多)测试库中使用?或者可能是将 Hamcrest 匹配器转换为所有其他库的匹配器的包装器?

我想支持的库(按重要性排序):

  • JUnit
  • Scala测试
  • 最流行的 Groovy 测试库
  • 最流行的 Clojure 测试库
  • 规范2
  • 测试NG

最佳答案

  1. 我见过的每个单元测试框架都会因测试失败而引发异常。
  2. Hamcrest 的 assertThat(T value, Matcher<T> matcher)会抛出 AssertionError如果matcher.matches(value)返回 false .

因此,Hamcrest 应该开箱即用地适用于大多数测试框架。对于其他库,例如构建模拟对象,您需要使用 Hamcrest 的 Matcher native 对象或编写集成层。一种方法是创建一个方法来装饰任何匹配器,例如*,

ArgumentMatcher<T> decorate(final Matcher<T> matcher) {
return new ArgumentMatcher() {
public boolean <T> accepts(T value) {
return matcher.matches(value);
}
}
}

* 这是一个使用理论 Mocking API 的人为示例。

关于testing - 如何为所有重要的测试库编写匹配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15701629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com