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。我错过了什么吗?或者有没有其他方法可以让序列在单元测试中按预期工作?

提前致谢。

4

0 回答 0