gpt4 book ai didi

unit-testing - 在Grails测试中重置ID序列或更新ID

转载 作者:行者123 更新时间:2023-12-02 16:01:06 25 4
gpt4 key购买 nike

在Grails 1.3.7中,我有一个按ID过滤对象的代码,我需要对其进行测试

域类具有序列

static mapping = {
id generator: 'sequence', params[sequence: 'seq_shipping_service']
}

在测试中,该对象被创建了几次,并且在所有测试中我都需要标识符为11,即使它在每次测试之间删除整个数据库,也不会重置序列。所以我会得到一个高级ID
foo = createFoo()
foo.id = 11l
foo.save () //This gets error

我的想法是
1)以某种方式重置ID序列,以便每次测试之间的数字相同
2)以某种方式设置ID

我不知道我是否清楚

最佳答案

就个人而言,如果我需要做这样的事情,我:

创建一个母亲对象以生成所有必需的对象(即foo.id == 11)

使用Groovy SQL将数据插入数据库。在您的情况下:

public class BlahBlahTest extends Specification {
DataSource dataSource

def setup () {
new Sql(dataSource).exec ("insert into blablah (11, ...)")
}
...

显然,您可以在此处进行其他操作-例如,重新创建以11开头的序列。

关于unit-testing - 在Grails测试中重置ID序列或更新ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30700532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com