Jac*_*cob 6 java junit unit-testing hamcrest
在JUnit的每一个版本我都试过(高达4.8.1),一个失败的assertThat显示,看起来像一个错误信息:
预期:[describeTo]
得到:[对象的字符串表示]
换句话说,它将显示对象的toString()而不是匹配器中的不匹配描述.如果我使用org.hamcrest.MatcherAssert.assertThat的assertThat,那么它会调用"describeMismatch",并显示一个更实用的错误消息.
我是否正确使用Junit,或者目前没有JUnit版本能够满足我的需求吗?那么大多数人都会使用Hamcrest声明吗?
简短的回答:不。
据我所知,最新版本的 Hamcrest (1.2) 引入了与 JUnit 当前依赖的版本 1.1 不兼容的类型签名。我不确定 Hamcrest 的更改所造成的损害程度(可以这么说),但 JUnit 团队似乎并不急于升级(请参阅未解决的问题)。
我不完全确定我已经解决了我的问题,但我计划使用MatcherAssert.assertThat(). 这可能需要特定版本的 JUnit(我相信是 junit-dep-xxx),它不会与 Hamcrest 发生类路径冲突。否则,您在拨打NoSuchMethodErrors时可能会收到。assertThat()describeMismatch()