问题标签 [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.
java - 将 assertArrayEquals() 与通配符一起使用?
我想测试生成用于作为 UDP 数据包发送的字节数组的代码。
虽然我无法重现测试中的每个字节(例如随机字节、时间戳),但我想测试我可以预先确定的字节。
使用 JUnit 4.8(和 Mockito 1.8)可能会出现以下情况吗?
上面的示例当然不起作用,我只是在寻找一种在assertArrayEquals()
.
PS:我现在唯一的选择是单独检查每个字节(并省略随机字节)。但这很乏味,而且不是真正可重用的。
感谢 JB Nizet 的回答,我现在有了以下代码,工作得很好:
java - Hamcrest 断言那模棱两可?
我从一所大学获得了一些示例代码,导入了项目并尝试运行测试:方法 assertThat(Integer, Matcher) 对于 MyClass 类型不明确
每个 assertThat 都用相同的错误消息标记为红色,所以我尝试编写描述问题的最简单的测试:
滚动到 assertThat 后,我收到以下消息:
我搜索了谷歌和stackoverflow,但找不到任何有同样问题的人......请帮忙。
编辑1:
解决方案:
导入静态 org.junit.Assert.*;// 删除这一行
java - 泛型地狱 - 我如何将 joda.DateTime 传递给 Hamcrest Matcher.greaterThan?
乔达时间有
它可以达到
Hamcrest 有
如果我尝试
然后我得到一个编译错误(Eclipse 给出了最多的线索)
Matchers 类型的泛型方法 GreaterThan(T) 不适用于参数 (DateTime)。推断的类型 DateTime 不是有界参数的有效替代 >
我是否认为签名greaterThan
实际上应该是
? 有没有办法将这些组合在一起,而不是投射到原始状态Comparable
?
java - 用于 Object... 参数的 Hamcrest 匹配器
我得到了上课的方法
我有一个自定义的 Hamcrest 匹配器
如何编写与传递给方法1的对象匹配的期望
实际调用是
传递的对象和预期的一样,但是SomeObjectMatcher失败了,因为实际传递的参数不是someObject1,而是SomeObject[]{someObject1}(只有一个对象的数组-someObject1)?有没有办法在链中添加一个新的匹配器,比如
java - Eclipse 和 javac 之间的 Hamcrest Matcher 编译区别
我正在尝试在 hasItem 匹配器中使用来自 hamcrest 的自定义匹配器
匹配器看起来像这样
这在 eclipse 中运行得很好,但是当从命令行使用 maven 构建时,它会引发异常:
我知道这是一个类型擦除问题,这是由于 eclipse 编译器和命令行之间存在一些差异,但我不确定处理它的最佳方法。
java - 有什么方法可以在生产代码中使用 Hamcrest 匹配器?
我想使用hamcrest作为糖框架在if
语句中使用,而不是在带有断言的单元测试中,而是在原始生产代码中。
就像是
或者
就像AssertThat
但没有抛出错误,只是返回布尔值。可能吗?
java - Mockito's Matcher vs Hamcrest Matcher?
这将是一个简单的问题,但如果我的类路径中包含两个库,我找不到它们之间的区别以及使用哪一个?
java - 为什么这个 assertThat 断言会抛出 AssertionError?
为作业创建测试,我遇到了一个奇怪的AssertionError
异常。
我已经改变了它,直到我遇到一个简单的案例:
排列.java:
挖掘 junit 和 hamcrest 源代码,我发现 junit assertThat 只调用匹配器上的匹配项。
在这种情况下,matches 方法是:
其中 arg 应为“p2”,object 应为“p1”。
(可以在Hamcrest 存储库中浏览)
areEqual 方法中使用调试器检查的比较结果是:
如您所见,代码应该达到最后一个 else 条件并返回true
( p2.equals(p1)
),但equalTo(p1).matches(p2)
返回false
谢谢你的帮助
java - 字符串的 Hamcrest 匹配器,其中字符串包含一些随机值
有没有办法将以下字符串与任何 hamcrest 匹配器匹配。
这个字符串被传递给一个方法。我使用 JMock 期望来匹配它。
问题:“72e3a446-2fed-4bda-ac35-34e95ab3dc32”部分是随机生成的UUID,是在被测方法内部生成的。是否有一个 Hamcrest 字符串匹配器可以匹配类似的东西
它必须匹配预期的字符串以"{\"messageType\":\"identify\",\"_id\":\"
之后有任何字符串开始,并以",\"address\":\"192.168.0.0\",\"port\":7070}"
编辑:解决方案
java - Hamcrest 日期匹配器
我需要在某个测试用例中的日期之前/之后进行测试。如果可能的话,我想使用Hamcrest 匹配器。
Hamcrest (Java) 是否有任何匹配器用于处理日期?如果是这样,我会在哪个包/类中找到特定的日期匹配器功能?