私はいくつかの簡単な方法の単体テストを書いています。私が抱えている問題は、ドメインが嘲笑されるべきであるにもかかわらず、「保存」が私のドメインオブジェクトでは機能していないということです。ドメインオブジェクトに対してvalidateを呼び出すと、trueに戻ります。私はtry/catchでオブジェクトを囲んでいて、奇妙なエラーを投げていないことを確認しています。そうではありません。通話とテストのための以下のコード。Grails mockDomainは保存しないで保存する
void test()
{
mockDomain(MyDomain)
Map map1= ["asdf":" "]
Map map2 = ["asdf":123]
InputObject input = new InputObject()
input.setForeignId("1") //not a constraint
input.setMap1(map1)
input.setMap2(map2)
service.methodUnderTest(profile)
List list = MyDomain.getAll()
assertEquals 1, l.size() //FAILS
}
def persistPublishGuids(InputObject input)
{
try{
HashMap map1 = input.map1
for (e in map1)
{
String key= e.getKey()
String value = e.value
long size = input.map2.get(key)
MyDomain domain = new MyDomain (id:guid, field1:value, field2:input.foreignId, field3:size)
domain.save()
}
} catch(ex)
{
ex.printStackTrace()
}
}
それを参照してくださいテストですべてのフィールドのセットアップ基本データにしたくない場合にはfalseに検証フラグを設定する検討に値しますこれが[sscce](http://sscce.org/)の場合はおそらく役に立ちます。あなたが投稿したものは、単独では実行できません。問題を実行して再現し、それを投稿する最も簡単な例を作りましょう。そうすることで、問題の根本を明らかにすることができます。そうでない場合は、誰かが助けてくれるはるかに明確な例が得られます。 – ig0774
私はそれを理解しました。 grailsをきれいにし、STSでプロジェクトをクリーン/再構築する必要があります。私は今朝別のテストを書き始めたときに、自分のドメインオブジェクトの1つにメソッド 'save()'がないと主張していたので、これを見つけました。グーグルでは、清潔で再構築されたソリューションにつながりました。 – Joseph