私は意図的にcatインスタンスを失敗させています。次のテストに合格します。統合テスト中にdomain.save(failOnError:true)が失敗する
void testSomething() {
Cat.metaClass.save = {
throw new Exception("Asdasd")
}
shouldFail(Exception){
Cat cat = new Cat(name: "asd")
cat.save()
}
GroovySystem.metaClassRegistry.removeMetaClass(Cat.class)
}
ただし、saveメソッドのfailOnErrorプロパティを設定すると、これは失敗します。 save(failOnError:true)が例外をスローするように、metaClassを使用して保存を変更するにはどうすればよいですか?私は助けていただきありがとうございます!ありがとう!
void testSomething() {
Cat.metaClass.save = {
throw new Exception("Asdasd")
}
shouldFail(Exception){
Cat cat = new Cat(name: "asd")
cat.save(failOnError: true)
}
GroovySystem.metaClassRegistry.removeMetaClass(Cat.class)
}
ため、いくつかのケースでは、ドメインのインスタンスが「doesnの同じテストを行うことへの1つの代替は、検証が失敗し、例外がスローされるように、ドメインインスタンスに無効なパラメータを渡すことですが、これはすべてのケースでは動作しませんユーザーが指定したパラメータが必要です。したがって、この場合、ドメインsave()の失敗をシミュレートするために、保存の失敗を模擬する方法が必要になります。 save(flush:true)、save(failOnError:true)のようなsave paramsの有無にかかわらず、どのようにモックを保存するかの答えを誰かが持っていると感謝します。ありがとう!