问题标签 [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 投票
2 回答
2906 浏览

junit - 测试集合中的所有元素满足谓词

我需要测试返回List一些复杂对象的有序方法。简化示例:

我想测试两者:返回集合的可排序(因为现在我正在使用org.hamcrest.collection.IsIterableContainingInOrder.contains和实现谓词)。

总结一下。我正在寻找这样的语法:

默认一个,contains方法不起作用,因为第一个参数是Collection<MyObject>并且谓词中的参数是Strings。我需要在它之间架起某种桥梁。

0 投票
1 回答
2685 浏览

java - 当我将多个自定义匹配器分配给单个方法时,Mockito 的行为很奇怪

我想为一个方法使用两个自定义匹配器。基本上,如果我通过方法 VALUE_A,我希望它返回 RESULT_A,如果我通过它 VALUE_B,我希望它返回 RESULT_B。所以这里有一段代码摘录:

当我将 IsEmpty 自定义匹配器分配给 mockHTable.get() 方法时,它会调用 IsNonEmpty.matches() 函数。不知道为什么要这样做。所以我将 IsNonEmpty 类更改为:

然后一切正常!当我将 IsEmpty 匹配器分配给 mockHTable.get() 函数时,仍然调用 IsNonEmpty.matches(),但我的匹配器完全按照它们应该的方式工作。

那么有什么关系呢?为什么会这样?我的变通办法是弥补这种古怪行为的充分方法,还是我做错了?

0 投票
2 回答
2908 浏览

python - 如何在 Hamcrest 中组合多个 assert_that?

我正在使用 PyHamcrest,但我认为这个问题与语言无关。

我想转:

成一个断言,这样如果两个断言都失败,错误消息就会这样说。这可以在 Hamcrest(或其他一些包/模块)中完成吗?

在 Python 中,我实现了:

所以我的测试会调用:

但我想知道是否已经有这样的实现。

0 投票
0 回答
1445 浏览

junit - assertThat 和 Hamcrest is() 和 nullValue() 的奇怪错误

我有一种从标准转换assertNullassertNotNull使用的方法assertThat

我开始改变一些断言:

对此:

但是当我nullValue()进入内部时,is()我开始出现不一致的断言失败,这些断言失败似乎跨越了不同的测试方法,我很难推断出这种失败的模式,除了:

当我nullValue()单独转换时:

问题消失了。

那么有人可以解释为什么使用nullValue()

作为参数is()

不应该工作?

0 投票
1 回答
1675 浏览

java - 如何使用 Hamcrest 检查双精度数组中的每个元素是否与另一个数组中的每个元素“接近”?

我想比较两个双打数组。使用香草 JUnit,我可以这样做:

我想知道如何使用 Hamcrest 来做到这一点,最好不要创建自定义匹配器(如果可能的话)。类似于对数组中的每个元素使用“关闭”匹配器。

0 投票
2 回答
1863 浏览

map - JMock 地图预期

我依赖于一个将 Map 作为参数的方法。

我想写一个断言,这个依赖是用适当的地图内容调用的。像这样的东西:

不幸的是,这无法编译,因为 hasEntry 在映射通用参数中有通配符:

有没有办法为地图内容编写 JMock 期望?

0 投票
1 回答
501 浏览

java - Hamcrest allOf() 的签名是否错误?

此匹配器检查一组匹配器,如果它们都成功则成功。

签名内容如下:

为什么这需要一个可迭代的
     Matcher<? extends T>

并不是
     Matcher<? super t>

如果它是正确的,请解释。

类型将从被匹配(测试)的对象中推断出来,所以我希望迭代器持有与被匹配对象或其任何超类兼容的匹配器。同样,允许可迭代对象保存仅与子类兼容的匹配器似乎是错误的。

0 投票
3 回答
14570 浏览

junit - hamcrest-library Matchers 和 hamcrest-core CoreMatchers 之间的区别

看起来 hamcrestorg.hamcrest.Matchers类非常相似org.hamcrest.CoreMatchers(尽管看起来Matchers有更多)。我为什么会选择使用CoreMatchers(除了看起来类略小),为什么这两个类如此相似?

0 投票
2 回答
857 浏览

java - 使用 lambdaj 进行不区分大小写的过滤

我正在尝试让自己熟悉 lambdaj,但不确定如何最好地解决这个问题。给定以下测试:

我怎样才能让 Matcher 不关心大小写?即,无论大小写如何,我都想要一个不在 l1 中的 l2 中的项目列表?我宁愿不必运行另一个 Lambda 来将每个字符串列表转换为相同的大小写,而是一种修改 Matcher 以按照我的意愿进行操作的方法。这是可能的还是我必须先将这些项目转换为相同的情况?

0 投票
2 回答
1603 浏览

java - 使用 hamcrest 和 mockito dsl 在 intellij 中配置自动完成

我想知道是否可以在测试类中配置 Intellij 的智能插入以建议 hamcrest 和 mockito dsl 习惯用法。真的,我正在寻找像 eclipse 的“静态收藏夹”这样的东西,这样当我点击 ctrl + space 或 ctrl +shift +space 时,就会出现成语。

一般来说,是否可以为此配置自动完成/智能插入或建议气球。我已经查看了设置,但运气不佳,但很容易忽略了一些东西。