使用 Spock 使用 Unroll 在测试名称中添加方法调用

Xel*_*ian 2 groovy unroll spock

我有一个代码,我想将方法​​调用值放在方法的名称中。

        @Unroll
        def 'check #file other text'() {
        setup:
        def file = allProperties.keySet().getAt(0)
        ...
        where:
        ...
Run Code Online (Sandbox Code Playgroud)

现在我创建了一个特殊的变量,目的只是为了命名方法。我可以做这样的事情:

        static def allProperties
        def setupSpec(){
           allProperties== [1: 'asd', 2: 'ddd']
        }
        @Unroll
        def 'check #allProperties.keySet().getAt(0) other text'() {
        ....
        where:
        ...
Run Code Online (Sandbox Code Playgroud)

编辑:添加 setupSpec()

dma*_*tro 5

Unroll支持属性访问或零参数方法。所以你可以有:

@Unroll
def "check #allProperties.keySet().first() other text"() { .. }
Run Code Online (Sandbox Code Playgroud)

提供的allProperties是类级变量或@Shared变量或在where:块下提及。