2011-07-20 6 views
3

NetBeansでGrails 1.3.2を使用しています。ドメインクラスの.save()を呼び出すと、ユニットテストで.save()メソッドのシグニチャがないと失敗する

No signature of method: com.maxrecall.maxrequire.domain.Release.save() is applicable for argument types: (java.util.LinkedHashMap) values: [[flush:true]] Possible solutions: wait(), any(), wait(long), isCase(java.lang.Object), use([Ljava.lang.Object;), sleep(long)

関連するコードは次のとおりです:

Release rel = new Release() 
... 
rel.save(flush:true) 

同じコードがBootStrap.groovyで働く私は、このエラーで失敗し、非常に単純なユニットテストを持っています。私はとし、パラメータなしで()(.SAVEを.SAVE上のさまざまなバリエーションを試してみました。

答えて

7

をお読みください。

をあなたが永続性をテストしている場合は、あなたがテストを変換する必要があります単体テストでパーシスタンスをテストすることは、モッキングフレームワークをテストするだけなので、統合テストです。統合テストでは、少なくともインメモリデータベースを使用します。 MySQL/Oracle /などのテストインスタンスに対して簡単に切り替えることができます。

ドメインクラスのコントローラまたは他のユーザをテストしていて、現在のクラスのテストに集中できるようにするには、mockDomainとGrailsユニットのテストベースクラスで使用できる他のモックメソッドを使用します。

詳細については、ドキュメントに記載されています。http://grails.org/doc/latest/guide/9.%20Testing.html

2

ユニットテスト(それが統合テストにあります)。を参照してください「mockDomainを理解する()」hereで周りの魔法一切のGrailsはありませんまたはそれは、ユニットテストなのでなど一切春、Hibernateは、あなたが望む行動を模擬する必要があるがありませんGrails docs

関連する問題