0

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オブジェクト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
        )

これは、このような小さくて単純なテストを作成するためのオーバーヘッドがかなり大きくなるためです。

4

1 に答える 1

1

このリリース ノートを参照してください。手動でTaskandUser@Mockorに指定する必要があります@Build(build-test-data-plugin: 2.0.5)

于 2013-05-05T11:31:05.910 に答える