У меня проблемы с написанием параметризованного теста с помощью 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}()
Но это некрасиво, если у кого-то есть решение получше, подскажите пожалуйста.