gpt4 book ai didi

unit-testing - 在Grails 2中使用build-test-data插件

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

我正在尝试使用build-test-data plugin(v。2.0.4)在Grails 2.1.4应用程序的单元测试中构建测试数据。

该应用程序具有以下域类

class Brochure {

static constraints = {}

static hasMany = [pageTags: PageTag]
}

class PageTag {

static constraints = {
}

static belongsTo = [brochure: Brochure]
}

然后在我的单元测试中,我尝试使用构建一个 PageTag实例
@Build([Brochure, PageTag])
class BrochureTests {

void testSomething() {
PageTag pageTag = PageTag.build()
}
}

但失败并显示错误

groovy.lang.MissingMethodException: No signature of method: btd.bug.Brochure.addToPageTags() is applicable for argument types: (btd.bug.PageTag) values: [btd.bug.PageTag : (unsaved)] Possible solutions: getPageTags()



我的示例看起来与 plugin's docs中显示的示例完全相同,因此我不知道为什么它不起作用。演示该问题的示例应用程序可用 here

最佳答案

在2.0.5版中已修复

我对链接的github问题进行了评论,但这是因为perf "fix"在grails @Mock注释的工作方式上。

此更改几乎删除了所有链接代码,使BTD可以在单元测试中工作。

目前解决此问题的唯一方法是,在域图中构建有效对象所需的所有域对象都添加一个显式的@Mock批注。

这次更改将使测试代码更快,这是很棒的,但是这给开发人员在测试中了解和维护这些关系带来了更大的负担(这是BTD试图避免的事情:)。

关于unit-testing - 在Grails 2中使用build-test-data插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16104195/

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