1

シーケンスを含むドメインオブジェクトで動作するサービスのテストを(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を返します。私は何かが足りないのですか?または、単体テストで期待どおりにシーケンスを機能させる方法は他にありますか?

前もって感謝します。

4

0 に答える 0