我創建了一個域類Grails中這樣的:具有Set屬性的Grails單元測試域類 - 是否安全?
class MyObject {
static hasMany = [tags: String]
// Have to declare this here, as nullable constraint does not seem to be honoured
Set tags = new HashSet()
static constraints = {
tags(nullable: false)
}
}
編寫單元測試,以檢查大小和MyObject.tags財產的內容,我發現我必須做到以下幾點:
assertLength(x, myObject.tags as Object[])
assertEquals(new HashSet([...]), myObject.tags)
爲了編寫測試的語法更好,我採取了以下方法:
void assertEquals(List expected, Set actual) {
assertEquals(new HashSet(expected), actual)
}
void assertLength(int expected, Set set) {
assertLength(expected, set as Object[])
}
我現在可以調用assertLength()和assertE quals()方法直接在Set的一個實例上,例如 assertLength(X,myObject.tags) 的assertEquals([...],myObject.tags)
我是新來的Groovy和Grails,所以不知道有多危險方法重載這樣的。它安全嗎?如果是這樣,我對這些方法(或類似方法)尚不可用感到驚訝 - 請讓我知道他們是否。
*
我可以看到,如果人們不期待他們,這些方法如何也可能引入歧義。例如。
assertLength(1, set)
總是流逝,不管什麼
set
好吧,這就是我正在做assertLength()方法中。我很想知道如果使用這樣的方法會受到阻礙。 此外,任何想法在我的assertEquals()方法? – Armand 2010-04-06 09:21:02