我一直在使用spock编写测试。但是为了测试Equals Hashcode合约,我试图使用EqualsVerifier。所以我的测试代码如下:
def "test equals hashcode contract"() {
EqualsVerifier.forClass(Content.class).verify();
}
但这看起来并不像spock那样运行。
我该如何解决这个问题?我希望更喜欢使用spock进行测试。
答案 0 :(得分:4)
一切正常但是在spock中它有点不同,请参阅:
@Grab('org.spockframework:spock-core:0.7-groovy-2.0')
@Grab('cglib:cglib-nodep:3.1')
@Grab('nl.jqno.equalsverifier:equalsverifier:1.7.2')
import spock.lang.*
import nl.jqno.equalsverifier.*
class Test extends Specification {
def 'sample'() {
when:
EqualsVerifier.forClass(SomeClass).verify()
then:
noExceptionThrown()
}
}
class SomeClass {}
此规范失败,因为抛出 异常 - 需要更正SomeClass
。看看伟大的docs。