0
我正在嘗試爲測試我的Grails服務創建單元測試。我有以下的測試測試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
等大型對象的創建方式?
E.g
def activity = new Activity(
task: new Task(),
user: new User(),
... and so on
)
,其中任務和用戶都嘲笑起來,而不是創建完整的對象,如
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
)
,因爲這將使相當大的開銷,建立這樣一個小而簡單的測試。
感謝,虐待記住這一點,但有辦法模擬「Task」和「User」之類的東西,而不必填充這些對象的所有字段,因爲它們是相當大的對象,對於這樣一個小的測試看起來有些過分 – 2013-05-05 11:38:17
您可以使用[build-test-data] ://grails.org/plugin/build-test-data)插件來克服這個問題。 – dmahapatro 2013-05-05 12:21:43
啊對不起,沒有看到你的第一個評論中的插件,謝謝,看起來很完美! – 2013-05-05 12:51:21