3

我一直在使用 spock 编写测试。但是为了测试 Equals Hashcode 合约,我正在尝试使用EqualsVerifier。所以我的测试代码看起来像:

def "test equals hashcode contract"() {
    EqualsVerifier.forClass(Content.class).verify();
}

但这看起来不像它与 spock 一起运行。

我该如何解决这个问题?我希望更喜欢使用 spock 进行测试。

4

1 回答 1

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

于 2015-06-07T16:03:31.360 回答