我正在为我的服务编写测试(使用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。 我错过了什么吗?或者还有其他方法可以让单元测试中的序列按预期工作吗?
提前致谢。