gpt4 book ai didi

unit-testing - 测试Grails服务时创建域对象

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

我正在尝试创建单元测试以测试grails服务。我有以下测试

@TestFor(ActivityProcessorService)

@Mock([ActivityProcessorService, Activity])
class ActivityProcessorServiceTests extends GrailsUnitTestCase{
void setUp() {

}

void tearDown() {
// Tear down logic here
}

void testGenerateDescription() {

def activity = new Activity(
//new activity details
)

def service = mockFor(ActivityProcessorService)
def description = service.generateDescription(activity)

assert description == "something..."
}
}

我的问题是在创建 Activity对象并填充所有必填字段时,它需要我创建其他几个对象,例如 UserTask和其他一些对象,其中这些对象可能很大,从而影响了所需的效果对象的创建等

有没有一种方法可以创建 Activity对象,但可以省略完全填充的对象(例如 TaskUser和其他大对象)的创建?

例如
def activity = new Activity(
task: new Task(),
user: new User(),
... and so on
)

模拟Task和User而不是创建完整的对象,例如
def activity = new Activity(
task: new Task(
title : "task title"
description : "task description"
... and so on
),
user: new User(
firstName : "john",
lastName : "smith",
... and so on
),
... and so on
)

因为创建这样一个小而简单的测试会产生相当大的开销。

最佳答案

引用此release notes,您必须手动在TaskUser中指定@Mock@Build(build-test-data-plugin:2.0.5)

关于unit-testing - 测试Grails服务时创建域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383985/

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