问题标签 [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 回答
7773 浏览

hamcrest - 在 hamcrest 中使用 not 操作

我最近试图在一项测试中断言不等式。但是我无法在 hamcrest 中找到合适的匹配器。我理想地想做的是类似的事情。

有什么办法吗?

0 投票
3 回答
7955 浏览

java - 断言可迭代的每个元素都匹配给定匹配器的惯用 Hamcrest 模式是什么?

检查以下代码段:

这断言该列表没有不以“x”结尾的元素。当然,这是双重否定的说法,即列表的所有元素都以“x”结尾。

另请注意,该片段会抛出:

这会列出整个列表,而不仅仅是不以“x”结尾的元素。

那么有没有一种惯用的方式:

  • 断言每个元素都以“x”结尾(没有双重否定)
  • 在断言错误时,仅列出那些不以“x”结尾的元素
0 投票
1 回答
154 浏览

java - 如何让 Eclipse 始终更喜欢其他库包含的最新版本的库?

我的项目使用junit-4.8.2.jar和mockito-all-1.8.5.jar;两者都包括 Hamcrest 1.1。这工作得很好,直到我添加了 hamcrest-all-1.2.jar; 现在我得到了各种 NoSuchMethodError,因为显然我的代码编译为 Hamcrest 1.2,但正在使用 Hamcrest 1.1 运行。

看起来有多种方法可以解决这个问题(例如,改用 junit-dep-4.8.2 等),但是有没有办法告诉 Eclipse 更喜欢 Hamcrest 1.2。在运行时和编译时?

0 投票
2 回答
518 浏览

java - 为什么junit在二进制文件中包含hamcrest的一部分,而不是在源代码中

好的,这里是下载junit的地方。打开任何已编译的 jar - 有包 org.hamcrest。打开任何 source-jar - 没有这样的包。这很奇怪,因为 hamcrest 的来源可以在googlecode 上找到。

那么,除了给用户带来不便之外,还有其他原因吗?

您如何处理这个问题,或者只是不在您的 IDE 中查看这些源代码?

0 投票
2 回答
2533 浏览

java - 我无法编译 hamcrest hasKey() 方法

这是代码:

这就是编译器所说的:

为什么以及我能做什么?

0 投票
2 回答
539 浏览

java - 使用静态导入时如何提示类型推断?

我在单元测试中使用带有 hamcrest 的 junit,但遇到了一个泛型问题:

我知道无法通过这种方式进行类型推断,并且其中一种解决方案是提供类型提示,但是在使用静态导入时我应该如何输入提示?

0 投票
2 回答
1331 浏览

jmock - JMock 期望 - 是否可以检查期望中的实际值?

我是 Java 和 JMock 的新手,我目前正试图让我的头脑围绕着嘲笑。我用虚拟类创建了这个虚拟测试:

}

我的 Class2Impl.method2() 返回整数 10,但期望值设置为 1234。测试仍然通过,所以我只是想澄清这个示例是否期望返回类型是任何整数?检查它是否返回 10 是否有可能或者是否有意义?

谢谢

0 投票
1 回答
2290 浏览

java - 通用 assertThat(ArrayList, hasItems(InstanceOfSomeInterface)) 不起作用

我想使用 Hamcrest 的hasItems“实际”ArrayList<? extends SomeInterface> 系列

编译器说:

assertThat(T, Matcher<T>)类型中的方法Assert不适用于参数(ArrayList<capture#9-of ? extends MyInterface>, Matcher<Iterable<MyInterface>>)

出了什么问题?我该怎么办(我真的很想在这里使用 Hamcrest)?

0 投票
1 回答
770 浏览

java - LambdaJ 类属性匹配器

我正在尝试编写一个 Hamcrest 匹配器来验证返回 Class 对象的方法的返回值。例如,给定类:

我有一个测试,它创建了一个 Hamcrest 匹配器来匹配调用的结果getClazz()

但是,此匹配器在执行时会引发异常:

有没有办法使用 LambdaJ 编写这样的匹配器?

0 投票
15 回答
117798 浏览

java - 在 IntelliJ 10.5 中运行测试时出现“NoSuchMethodError:org.hamcrest.Matcher.describeMismatch”

我正在使用 JUnit-dep 4.10 和 Hamcrest 1.3.RC2。

我创建了一个自定义匹配器,如下所示:

当使用 Ant 从命令行运行时,它工作得非常好。但是当从 IntelliJ 运行时,它会失败并显示:

我的猜测是它使用了错误的 hamcrest.MatcherAssert。我如何找到它正在使用的 hamcrest.MatcherAssert(即它用于 hamcrest.MatcherAssert 的 jar 文件)?AFAICT,我的类路径中唯一的 hamcrest jar 是 1.3.RC2。

IntelliJ IDEA 是否使用它自己的 JUnit 或 Hamcrest 副本?

如何输出 IntelliJ 正在使用的运行时 CLASSPATH?