如何对使用带有序列的域对象的工件进行单元测试?

时间:2012-05-31 20:42:13

标签: unit-testing grails spock

我正在为我的服务编写测试(使用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']
    }

}

示例:test

@Build(Transaction)
@TestFor(Transaction)
class TransactionSpec extends Specification {
    def "simple test"() {
        when:
        Transaction transaction = Transaction.build()
        transaction.save()

        then:
        true
    }
}

测试将失败,因为域对象中的transactionId可能不可为空。域类中的序列不能按预期工作并返回null。 我错过了什么吗?或者还有其他方法可以让单元测试中的序列按预期工作吗?

提前致谢。

0 个答案:

没有答案