gpt4 book ai didi

unit-testing - Grails/Groovy-使用多个@TestMixin

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

在Grails中,我有一个要进行单元测试的服务。该服务使用以下导入:

import grails.converters.JSON
import grails.web.JSONBuilder

我希望该服务获取数据并将其转换为JSON:
def tables = DataProfileStats.withCriteria {
projections {
distinct("tableName")
}
};

我编写的用于构建JSON的辅助方法是:
public String buildNodeString(String nodeText)
{
def builder = new JSONBuilder();

JSON result = builder.build {
hello = "world"
};

return result.toString();
}

在单元测试中,我必须添加@TestMixin(ControllerUnitTestMixin)以便加载JSON适配器。但是我还必须添加@TestMixin(DomainClassUnitTestMixin),以便可以模拟数据库对象。

关于如何拥有多个@TestMixin的任何想法,或者这是我在服务类中具有导入grails.web.JSONBuilder的设计问题?否则,我必须使用JAVA/JSON库或将JSON内容放入 Controller 中。

这是我希望测试看起来像的样子:
@TestMixin(ControllerUnitTestMixin)
@TestMixin(DomainClassUnitTestMixin)
class JsTreeJSONGeneratorServiceTests {

void testSomething() {

DataProfileStats stats1 = new DataProfileStats();
stats1.tableName = "table";

mockDomain(DataProfileStats, stats1);

JsTreeJSONGeneratorService service = new JsTreeJSONGeneratorService();
String json = service.buildNodeString();
assert json != "";

}

}

我得到一个@TestMixin(ControllerUnitTestMixin)
@TestMixin(DomainClassUnitTestMixin)
类JsTreeJSONGeneratorServiceTests {
void testSomething() {

DataProfileStats stats1 = new DataProfileStats();
stats1.tableName = "table";

mockDomain(DataProfileStats, stats1);

JsTreeJSONGeneratorService service = new JsTreeJSONGeneratorService();
String json = service.buildNodeString();
assert json != "";

}

}

我得到一个@TestMixin(ControllerUnitTestMixin)
@TestMixin(DomainClassUnitTestMixin)
类JsTreeJSONGeneratorServiceTests {
void testSomething() {

DataProfileStats stats1 = new DataProfileStats();
stats1.tableName = "table";

mockDomain(DataProfileStats, stats1);

JsTreeJSONGeneratorService service = new JsTreeJSONGeneratorService();
String json = service.buildNodeString();
assert json != "";

}

}

我收到“无法在同一成员上指定重复注释:grails.test.mixin.TestMixin”异常。

谢谢

最佳答案

找到了!

@TestMixin([GrailsUnitTestMixin, ControllerUnitTestMixin, DomainClassUnitTestMixin])

关于unit-testing - Grails/Groovy-使用多个@TestMixin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903540/

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