问题标签 [hamcrest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1887 浏览

java - 为什么这个 hamcrest 匹配器在 Eclipse 中工作而不在外面工作?

可能重复:
Hamcrest 的 hasItems

我使用 hamcrest 匹配器编写了一个测试,如下所示:

这在我在 Eclipse 中编译时有效,但不是在 Eclipse 之外。我的 maven 项目使用 eclipse 编译器,所以使用 maven 时它在 Eclipse 之外编译,但如果我使用标准 java 编译器,它不会编译。

我收到错误消息

找不到符号方法 assertThat(java.util.Collection,org.hamcrest.Matcher>)

我正在使用 junit 4.10 和 hamcrest 1.3.RC2。

0 投票
1 回答
8942 浏览

java - 无法使 JUnit 工作(assertThat/hasItem)

我刚刚创建了一个虚拟 Maven 项目:

我有这个项目中唯一的测试:

当我运行时mvn clean test,它说:

Maven版本:

爪哇版:

我如何使它工作?

更新

修复了Assertand的导入JUnitMatchers,更新了输出mvn clean test

0 投票
1 回答
1165 浏览

testing - 为什么 mockito 返回错误 eve 参数是相同的?

看看这张照片。Mockito 验证 Argument 发生了什么?

我想验证是否使用参数工厂调用了视图。

但是我得到了这个奇怪的错误?!

你可以的论点是相同的。 在此处输入图像描述

0 投票
2 回答
1724 浏览

java - 日期的 Hamcrest 库

我一直在环顾四周,但没有发现任何有用的东西。是否有任何与具有广泛日期匹配的 hamcrest 一起使用的第三方库?

具体来说,我正在寻找以下方面的匹配器:

在我推出自己的产品之前,我想看看那里是否有任何东西。

0 投票
3 回答
3224 浏览

java - JMock- java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch()

我知道解决方案是以某种方式确保在 hamcrest 之后加载 Junit。我有一个 intellij 项目,我在其中设置了一个外部库,其中包含 JUnit 和 JMock 以及 hamcrest。如何确保不会出现此错误

0 投票
9 回答
179056 浏览

java - 如何断言 Iterable 包含具有特定属性的元素?

假设我想用这个签名对一个方法进行单元测试:

假设MyItem是一个具有许多属性的 Pojo,其中之一是"name"通过getName().

我关心的只是验证List<MyItem>或 anyIterable包含两个MyItem实例,其"name"属性具有值"foo""bar"。如果任何其他属性不匹配,我真的不关心这个测试的目的。如果名称匹配,则测试成功。

如果可能的话,我希望它是单行的。这是我想做的那种事情的一些“伪语法”。

Hamcrest 对这类事情有好处吗?如果是这样,我上面的伪语法的 hamcrest 版本到底是什么?

0 投票
1 回答
322 浏览

groovy - 在 Groovy 中将 JMock2 与 Matchers 一起使用:'with' 方法的问题

我的测试方法中有一个带有 JMock 期望的以下片段:

在哪里anyInsertionEventaRowChangedEventAs返回Matcher<TableModelEvent>. 这摘自“由测试引导的面向对象的软件增长”一书(第 181 页)。

我尝试将此测试转换为 Groovy,但我需要的方法是:

被以下阴影遮蔽:

结果,我在测试期间遇到错误,例如:

我怎样才能使用适当的with方法?或者,请建议任何其他方法来解决此问题。

更新:它不是阴影。Expectations.with(Matcher<Boolean>)因此,实际调用的方法是false堆栈跟踪中的值。因此,方法被错误地分派。有什么想法吗?

更新:匹配器方法如下:

0 投票
1 回答
1034 浏览

java - 将空集合与 Hamcrest 的 hasItem() 匹配

如何使用 TestNG 和hasItemHamcrest 匹配一个空集合?这是我通过一项测试得到的结果。

这是我的匹配器类:

失败的测试是

其中expectedMatcher由数据提供者提供。结果,我不确定要传递什么来匹配这个“空集合”。我正在传递默认构造函数,但我知道这不起作用,因为它使用null成员创建集合。

这是我的数据提供者的一部分:

0 投票
2 回答
207 浏览

serialization - Wicket 行为中的不可序列化匹配器

我在 Wicket 上构建了一个可见性行为,它使用 Hamcrest Matcher(和一些 Lambdaj)来查看是否有任何给定的属性模型值与给定的匹配器匹配,如果是,那么它将隐藏组件。

直到那时我才意识到 Hamcrest Matchers 是不可序列化的,并且根据他们的问题跟踪器,他们无意序列化。

上面只是一个例子,我可以看到传递MatchersBehaviors 和其他 Wicket 东西的几种用途。

有什么办法吗?

0 投票
2 回答
1463 浏览

java - 编写更好的 JUnit 参数化测试用例

我有一个有趣的要求。我希望在我的应用程序中拥有尽可能好的测试用例覆盖率。我正在使用参数化 Junit 运行具有不同输入数量的测试用例。我的示例测试类如下所示:

这样,我用我的测试参数定义了断言逻辑。现在我想在测试用例上运行多个匹配器,其中一些可以是我编写的自定义匹配器。

断言就像:

但问题是,两个匹配器都在不同的对象上运行。我可以定义我的 CustomMatcher 的最佳方式是什么?

我应该按匹配器类型对断言进行分类吗?

我将不胜感激任何帮助。提前致谢。