1

プロジェクトの単体テストを作成する際に少し助けが必要です。コントローラーとドメインの単体テスト クラスを作成しました。

私の質問は- 私は従業員という名前のドメイン クラスを持っています。

そして、テストクラス EmployeeControllerTest() の下の setUp() メソッドでそれらをモックしたい

次のMixinを追加しました

package EmployeeController

import static org.junit.Assert.*

import grails.test.mixin.*
import grails.test.mixin.support.*
import org.junit.*
import java.io.Serializable

import grails.test.mixin.TestFor
import grails.test.mixin.TestMixin
import grails.test.mixin.Mock
import grails.test.mixin.support.GrailsUnitTestMixin
import grails.test.mixin.domain.DomainClassUnitTestMixin
import grails.test.mixin.services.ServiceUnitTestMixin
import grails.test.mixin.web.ControllerUnitTestMixin
import grails.test.mixin.web.FiltersUnitTestMixin
import grails.test.mixin.web.GroovyPageUnitTestMixin
import grails.test.mixin.web.UrlMappingsUnitTestMixin
import grails.test.mixin.webflow.WebFlowUnitTestMixin

@TestMixin(GrailsUnitTestMixin)
@TestFor(EmployeeController)
@Mock([Employee])

class EmployeeControllerTests {

    void setUp() {
        // Setup logic here

       def Employee ce = new Employee()
       ce.put(empNo: "001", firstname: "amy", middleInitial: "ratr", lastname: "suz", status: "A", empType: "vendor", userid: "amar")
    }

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

    void testSomething() {
        //fail "Implement me"
    }

何か不足している場合や変更が必要な場合はお知らせください。

前もって感謝します:)エイミー

4

2 に答える 2

4

TestMixin は grails 1.3 の古い単体テストに由来するため、@TestMixin一緒に使用しないでください- 削除することをお勧めします@TestFor

于 2013-06-11T11:47:37.447 に答える
1

ユニット テスト ケースは、数行のコードに減らすことができます。

package EmployeeController
import org.junit.*

import grails.test.mixin.TestFor
import grails.test.mixin.Mock

@TestFor(EmployeeController)
@Mock(Employee)
class EmployeeControllerTests {
    void setUp() {
       def ce =   
                new Employee(empNo: "001", firstname: "amy", 
                             middleInitial: "ratr", lastname: "suz", 
                             status: "A", empType: "vendor", 
                             userid: "amar").save(flush: true)
    }
}

@TestFormixin はコントローラーのモックを処理します。コントローラーをインスタンス化せずcontrollerに、contoller.paramscontroller.request、などのいくつかのキーワードに非常によくアクセスできます。controller.response

@Mockドメインクラスのモックを担当していますEmployee

于 2013-06-11T13:32:26.093 に答える