Grails1.1系は...?
- Grails1.1系で「create-domain-class」、「create-controller」をしていたら、1.0系とテストのテストケースの雛形が作成されるディレクトリが変わった?ようで、忘れないようにメモっときます。(1.1のRelease Notes,Documentsを読めば書いてあるのだろうけど...)
- ディレクトリが「$PROJECT_HOME/test/integration」→「$PROJECT_HOME/test/unit」に変更。
- テストケースのスーパークラスが「GroovyTestCase」→「GrailsUnitTestCase」に変更。
mockDomainで?
- 今まで「integration」ディレクトリ内でしか、テストをした事がなかったので気付かなかったのですが、「unit」ディレクトリ内では、インスタンス生成時に、ドメインクラスの動的メソッドは生成されず、明示的に生成する必要があるようです。「mockDomain(ドメインクラス名)」で動的メソッド生成。まだ解らない事が沢山ありそうです。orz
import grails.test.*
class PublisherTests extends GrailsUnitTestCase {
protected void setUp() {
super.setUp()
}
protected void tearDown() {
super.tearDown()
}
void testValidation() {
mockDomain(Publisher)
def publisher = new Publisher()
publisher.name = ""
assertFalse publisher.validate()
publisher.name = "平成出版"
assertTrue publisher.validate()
}
void testPersistence(){
mockDomain(Publisher)
assertEquals 0,Publisher.count()
new Publisher(name:"Test Publisher1").save()
new Publisher(name:"Test Publisher2").save()
assertEquals(2,Publisher.count())
Publisher.get(2).delete()
assertEquals(1,Publisher.count())
}
}