2

Grails の単体テストで Groovy Domain-Classes の initBefore メソッドをテストするにはどうすればよいですか?

ダミー オブジェクトを作成しましたが、テスト環境で myObject.save() が呼び出され、save が使用できないまで beforeInsert メソッドは呼び出されません。

編集:単体テストです。エラーはありませんが、メソッド beforeInsert は呼び出されません

4

4 に答える 4

5

beforeInsert は単体テスト中に呼び出されます。テストでこれを確認できます。考慮すべき点がいくつかあります。

  1. クロージャーではなく、 beforeInsert メソッドを使用してください。閉鎖は正しく機能しません。
  2. オブジェクトがフラッシュされたときに呼び出されるため、事前にサイレント保存エラーが発生している可能性があります。オブジェクトを保存するときのテストで .save(flush: true, failOnError: true) を実行します
于 2013-10-15T22:51:40.497 に答える
0

ドメイン オブジェクトを作成して save() するだけです。次に、「beforeInsert」がオブジェクトを操作したかどうかを確認します。

save() は、テスト環境で使用できます。myDomainobject.save() を呼び出すときにスタックトレースを表示してください

于 2011-12-05T08:11:47.290 に答える
0

beforeInsert メソッドが呼び出されているかどうか、または beforeInsert のロジックが正しいかどうかをテストしますか?

beforeInsert が呼び出されているかどうかをテストするには、テスト クラスで GrailsUnitTestCase を拡張する必要があります。そうすることで、モック機能が提供され、save() や validate() などのすべてのメソッドが追加されます。save() を実行すると、モックされたオブジェクトが beforeInsert メソッドを呼び出したかどうかを確認できます。

beforeInsert のロジックをテストしている場合は、モックする必要はありません。他の単体テストと同じように、オブジェクトを作成してロジックをテストできます。

お役に立てれば。

于 2011-06-23T04:11:27.693 に答える