たとえば、フラグの計算が原因で、パラメーターにパイプ文字が必要な場合、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}()
しかし、それは醜いです。誰かがより良い解決策を持っているなら、教えてください。