- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我尝试过的每个 JUnit 版本中(最高 4.8.1),失败的 assertThat 将显示如下错误消息:
预期:[describeTo]
得到:[对象的字符串表示]
换句话说,它将显示对象的 toString() 而不是来自 Matcher 的不匹配描述。如果我使用 org.hamcrest.MatcherAssert.assertThat 中的 assertThat,那么它将调用“describeMismatch”并显示更有用的错误消息。
我是否错误地使用了 Junit,或者目前是否没有可以满足我要求的 JUnit 版本?那么大多数人使用 Hamcrest assertThat 吗?
最佳答案
简短的回答:没有。
据我所知,最新版本的 Hamcrest (1.2) 引入了与 JUnit 当前所依赖的版本 1.1 不兼容的类型签名。我不确定 Hamcrest 中的更改造成的损害程度(可以这么说),但 JUnit 团队似乎并不急于升级(请参阅 open issue)。
我不完全确定我已经解决了我的问题,但我打算使用 MatcherAssert.assertThat()
。这可能需要特定版本的 JUnit(我相信是 junit-dep-xxx),它不会与 Hamcrest 发生类路径冲突。否则,当 assertThat()
调用 describeMismatch()
时,您可能会收到 NoSuchMethodErrors
。
关于java - 是否有使用 Hamcrest 'describeMismatch' 功能的 JUnit assertThat 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915635/
最近我为 jaxb 生成的元素制作了一个自定义匹配器,并遇到了这种情况: 前提条件: 我有一个自定义匹配器,它使用重写方法describeTo和describeMismatch(当然还有匹配.....
在我尝试过的每个 JUnit 版本中(最高 4.8.1),失败的 assertThat 将显示如下错误消息: 预期:[describeTo] 得到:[对象的字符串表示] 换句话说,它将显示对象的 to
我知道解决方案是以某种方式确保 Junit 在 hamcrest 之后加载。我有一个 intellij 项目,我在其中设置了一个外部库,其中包含 JUnit、JMock 和 hamcrest。我怎样才
我正在使用 JUnit-dep 4.10 和 Hamcrest 1.3.RC2。 我创建了一个自定义匹配器,如下所示: public static class MyMatcher extends Ty
我是一名优秀的程序员,十分优秀!