grails domain mappedBy“none”不在单元测试上工作

时间:2015-03-26 06:25:02

标签: unit-testing grails gorm

目前正在使用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

1 个答案:

答案 0 :(得分:0)

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

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

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