6

Grails 2.04 で Spock 0.7 を使用します。テスト環境をセットアップしようとしています。オブジェクトのリストのテストに関して助けが必要です。

位置オブジェクトのリストがあります。これらの各オブジェクトの日付をテストしたいと思います。繰り返していますが、日付が等しくない場合にテストを失敗させる方法がわかりません。リスト内のオブジェクトをテストする良い方法はありますか? 当時のコードブロックの下にリストしました。

then:
        weatherList != null
        weatherList.empty != null
        weatherList.size() == 3
        weatherList.each {
            Calendar today = Calendar.getInstance();
            today.clearTime()
            if(it.forecastDate != today) {
                return false
            }
        }
4

1 に答える 1

22

解決策は次のようになります (コメントはインライン):

// avoid testing with real dates if possible
def today = Calendar.getInstance().clearTime() 

when:
...

then:
weatherList != null
weatherList.size() == 3
// does this list really contain Calendar objects?
weatherList.every { it.forecastDate == today }
// OR, for a potentially better error message
weatherList.each { assert it.forecastDate == today }
于 2012-10-30T12:57:59.090 に答える