シーケンスを含むドメインオブジェクトで動作するサービスのテストを(Grails 2.0.4 / Spock / Build-Test-Dataプラグインを使用して)作成しています。課題は、シーケンスが単体テスト内で機能していないことです。そのため、これにどのように取り組むか疑問に思っていますか?
例:ドメインオブジェクト
class Transaction {
Long transactionId // unique auto generated transaction id
// .. code omitted
static mapping = {
// sequence generator for handing out unique transaction id's
transactionId generator:'sequence', params:[initial_value: 50, sequence:'seq_transaction_id']
}
}
例:テスト
@Build(Transaction)
@TestFor(Transaction)
class TransactionSpec extends Specification {
def "simple test"() {
when:
Transaction transaction = Transaction.build()
transaction.save()
then:
true
}
}
ドメインオブジェクト内のtransactionIdはnull許容でない可能性があるため、テストは単に失敗します。ドメインクラスのシーケンスは期待どおりに機能せず、nullを返します。私は何かが足りないのですか?または、単体テストで期待どおりにシーケンスを機能させる方法は他にありますか?
前もって感謝します。