[Grails] マルチテナント環境での試験

Grails 3.3.11 でやってます。

シングルDBのマルチテナント
ここが参考になるで、参考しながら作成していたのですが、Unit試験が通らない。

以下のようなエラーが出る

ガイドにあるように、
Specification -> HibernateSpec に変更しただけだとだめ。
ガイドは、ControllerUnitTest を implements しているが私のテストは、Service の試験。

なので、GrailsWebUnitTest を implements した。

を、

しかし、まだまだエラーが。

なんか、Transaction 系ね。
というわけで、 create-integration-test で生成されたものをそのまま使っていたが、@Rollback の記載を取ったら動いた。

ちなみに、Rollback は試験の HibernateSpec により、試験毎に rollback されるので@Rollback は不要。

挙動を変えるには、isRollback() を Override して、false を返せば rollbackされない

Service だけではく、Domain の試験でもこの方法で試験可能。

ただ、Domain の試験、MultiTenancyだと、unique が試験できなくなる。
これを解決するのは諦めた。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください