gpt4 book ai didi

unit-testing - Grails域映射通过 “none”无法在单元测试中使用

转载 作者:行者123 更新时间:2023-12-02 14:51:04 25 4
gpt4 key购买 nike

当前使用Grails 2.4.4

我正在尝试保存我的模型,而无需考虑它们之间的双向关系。因此,我添加了mappedBy [field:'none']。但这不适用于单元测试。当我运行应用程序时它可以工作,但是当我运行单元测试并保存域时,它们始终采用双向关系。

考虑示例(为简单起见,我省略了约束,将字段视为可空):

class User {
Organization organization
static mappedBy = [organization: 'none']
}

class Organization {
User leader
static mappedBy = [leader: 'none']
}

每当我执行以下操作:
def user = new User().save()
def organization = new Organization(leader: user).save()
user.organization = organization
user.save()

def organization2 = new Organization(leader: user).save()
// now user's organization becomes organization2

最佳答案

不要将单元测试用于持久性测试。

单元测试中使用的GORM实现不使用数据库,而仅使用ConcurrentHashMap。支持大多数核心GORM功能,但是正如您所看到的,存在差距。

要正确测试持久性,请使用集成测试,默认情况下使用内存中的H2数据库,但将DataSource.groovy中的数据库更改为测试MySQL / Postgres / etc很简单。数据库,如果您愿意。

关于unit-testing - Grails域映射通过 “none”无法在单元测试中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272271/

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