MongoDB をデータソースとして使用する場合、トランザクションを自動的にロールバックするように Grails 統合テストをどのように構成できますか (すべきですか)? (Grails 2.2.1 + mongodb プラグイン 1.2.0 を使用しています)
質問する
1235 次
4 に答える
2
spock 統合テストのために、テスト データのクリーンアップをある程度制御できる MongoIntegrationSpec を定義しました。
- dropDbOnCleanup = true // 機能メソッドが実行されるたびに DB 全体を削除します。
- dropDbOnCleanupSpec = true // 仕様が完了した後、DB 全体を削除します。
- dropCollectionsOnCleanup = ["collectionA", "collectionB", ...] // 機能メソッドが実行されるたびにコレクションを削除します。
- dropCollectionsOnCleanupSpec = ["collectionA", "collectionB", ...] // 仕様の完了後にコレクションを削除します。
- dropNewCollectionsOnCleanup = true // 各機能メソッドが実行された後、すべての新しいコレクションが削除されます
- dropNewCollectionsOnCleanupSpec = true // 仕様が完了すると、すべての新しいコレクションが削除されます
ソースはこちら
また、プロジェクトにはいくつかの使用例もあります。
于 2013-07-23T20:23:12.343 に答える
1
MongoDB はトランザクションをサポートしていないため、それは不可能だと思います。Suggested を使用できますがstatic transactional = 'mongo'
、データをフラッシュしなかった場合にのみ役立ちます (まれな状況だと思います)。
setUp()
代わりに、データベースを手動でクリーンアップできます。次のように、テストするドメインのコレクションをドロップできます。
MyDomain.collection.drop()
そして(オプションで)テストに必要なすべてのデータを入力します。
于 2013-04-17T16:08:50.380 に答える
0
テストおよび/またはクラスstatic transactional = 'mongo'
で使用できます。詳細については、 MongoDB プラグインを参照してください。integration
service
于 2013-04-17T02:25:19.807 に答える