我正在學習Grails的Grails - 傑森魯道夫書籍入門。 我的域類看起來像這樣:Grails - 在域類問題上測試自定義驗證器
class Race {
String name;
Date startDateTime
String city
String state
Float distance
Float cost
Integer maxRunners = 10000
static hasMany = [registrations: Registration]
static constraints = {
name(maxSize: 50, blank: false)
startDateTime(validator: {
return it > new Date()
})
city(maxSize: 30, blank: false)
state(inList: ['GA', 'NC', 'SC', 'VA'], blank: false)
distance(min: 3.1f, max: 100f)
cost(min: 0f, max: 999.99f)
}
String toString() { "${this.name} : ${this.city}, ${this.state}" }
}
我想測試的startDateTime字段的自定義驗證。測試看起來是這樣的:
class RaceTests extends GrailsUnitTestCase {
protected void setUp() {
super.setUp()
}
protected void tearDown() {
super.tearDown()
}
void testCustomDateValidation() {
def race = new Race()
race.startDateTime = null
assertFalse(race.validate())
}
}
測試看起來類似於我前面提到的書。但我越來越
groovy.lang.MissingMethodException: No signature of method: racetrack.Race.validate() is applicable for argument types:() values: []
我卡住了,沒有找到任何解決方案:/任何幫助將不勝感激。
你提到你使用的是Jason Rudolph的書,所以我假設你使用的是第一版。這是_very_的日期,你應該使用第二版,這也是免費的:http://www.infoq.com/minibooks/grails-getting-started – 2010-08-20 02:59:37
是的,事實證明我使用的是舊版 - 我知道有第二版,但我忘了下載它:P – jjczopek 2010-08-20 16:47:11