0

たとえば、フラグの計算が原因で、パラメーターにパイプ文字が必要な場合、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}()

しかし、それは醜いです。誰かがより良い解決策を持っているなら、教えてください。

4

1 に答える 1

2

あなたはできるはずです:

InputType.TYPE_CLASS_NUMBER.or( InputType.TYPE_NUMBER_FLAG_DECIMAL )

それが良いかどうかはわかりません;-)

于 2013-11-14T09:00:05.850 に答える