У меня возникли проблемы с записью параметризованного теста с помощью Spock, когда одному параметру нужен символ трубы, например, потому что он вычисляет флаг.Параметрированные тесты Spock и использование труб
def "verify inferInputType()"() {
expect:
inputType == mPresenter.inferInputType(opt)
where:
opt | inputType
0 | 0
EDITTEXT_TYPE_ALPHANUM | InputType.TYPE_CLASS_TEXT
EDITTEXT_TYPE_NUM | InputType.TYPE_CLASS_NUMBER
EDITTEXT_TYPE_FLOAT | (InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL)
}
тест выдает следующее сообщение об ошибке:
Row in data table has wrong number of elements (3 instead of 2) @ line 25, column 9.
EDITTEXT_TYPE_FLOAT | InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL
^
Единственный способ, которым я нахожу, чтобы сделать его работу является обернуть параметр внутри закрытия, как тот
EDITTEXT_TYPE_FLOAT | {InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL}()
Но это уродливо, если у кого-то есть лучшее решение, скажите, пожалуйста.
это работает и на самом деле лучше, спасибо! – tbruyelle