我正在尝试创建单元测试来测试我的 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
例如和其他一些对象,其中这些对象可能非常大,这会产生连锁反应,它们需要创建物体等User
Task
有没有一种方法可以创建一个Activity
对象但省略创建完全填充的对象,例如Task
,User
和其他大对象?
例如
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
)
因为这将为创建如此小而简单的测试带来相当大的开销。