问题标签 [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.
hamcrest - 在 hamcrest 中使用 not 操作
我最近试图在一项测试中断言不等式。但是我无法在 hamcrest 中找到合适的匹配器。我理想地想做的是类似的事情。
有什么办法吗?
java - 断言可迭代的每个元素都匹配给定匹配器的惯用 Hamcrest 模式是什么?
检查以下代码段:
这断言该列表没有不以“x”结尾的元素。当然,这是双重否定的说法,即列表的所有元素都以“x”结尾。
另请注意,该片段会抛出:
这会列出整个列表,而不仅仅是不以“x”结尾的元素。
那么有没有一种惯用的方式:
- 断言每个元素都以“x”结尾(没有双重否定)
- 在断言错误时,仅列出那些不以“x”结尾的元素
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。在运行时和编译时?
java - 为什么junit在二进制文件中包含hamcrest的一部分,而不是在源代码中
好的,这里是下载junit的地方。打开任何已编译的 jar - 有包 org.hamcrest。打开任何 source-jar - 没有这样的包。这很奇怪,因为 hamcrest 的来源可以在googlecode 上找到。
那么,除了给用户带来不便之外,还有其他原因吗?
您如何处理这个问题,或者只是不在您的 IDE 中查看这些源代码?
java - 我无法编译 hamcrest hasKey() 方法
这是代码:
这就是编译器所说的:
为什么以及我能做什么?
java - 使用静态导入时如何提示类型推断?
我在单元测试中使用带有 hamcrest 的 junit,但遇到了一个泛型问题:
我知道无法通过这种方式进行类型推断,并且其中一种解决方案是提供类型提示,但是在使用静态导入时我应该如何输入提示?
jmock - JMock 期望 - 是否可以检查期望中的实际值?
我是 Java 和 JMock 的新手,我目前正试图让我的头脑围绕着嘲笑。我用虚拟类创建了这个虚拟测试:
}
我的 Class2Impl.method2() 返回整数 10,但期望值设置为 1234。测试仍然通过,所以我只是想澄清这个示例是否期望返回类型是任何整数?检查它是否返回 10 是否有可能或者是否有意义?
谢谢
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)?
java - LambdaJ 类属性匹配器
我正在尝试编写一个 Hamcrest 匹配器来验证返回 Class 对象的方法的返回值。例如,给定类:
我有一个测试,它创建了一个 Hamcrest 匹配器来匹配调用的结果getClazz()
:
但是,此匹配器在执行时会引发异常:
有没有办法使用 LambdaJ 编写这样的匹配器?
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?