13

我有一个非常简单的测试:

def "setContent_activity_finished"(Status editStatus) {
    // Variables.........................

    given:
    activity.getStatus() >> editStatus.toString()

    when:
    handler.setContent(activityId,jsonString)

    then:
    0*view.appendPossible(_)

    where:
    editStatus       |_
    FINISHED         |_
    CANCELED         |_
}

根据文档http://spock-framework.readthedocs.org/en/latest/data_driven_testing.html 数据表必须至少有两列。一个单列表可以写成:

where:
a | _
1 | _
7 | _
0 | _

我遵循这个规则,但是得到了一个如图所示的错误:

Groovy:Date variable '_' needs to be declared as method parameter

在此处输入图像描述

所以,请告诉我这里有什么问题?

4

2 回答 2

12

另一种实现单列的方法是使用数据管道 http://spockframework.org/spock/docs/1.0/data_driven_testing.html

where:
editStatus << [FINISHED, CANCELED]
于 2019-02-14T13:19:28.750 回答
5

参数列表必须是()(Status editStatus, _)。(您不能只声明一个数据变量而不能声明另一个。)(Status editStatus)在这种特殊情况下,有一个开放的拉取请求允许。

于 2014-09-08T15:09:51.107 回答