我需要一些帮助来为我的项目编写单元测试。 我已经为我的控制器和域创建了单元测试类。
我的问题是 - 我有一个名为employee的域类 它有 - 字符串ID 字符串名字 String middleInitial 字符串姓氏 字符串状态 字符串empType 字符串userid
我想在测试类EmployeeControllerTest()下的setUp()方法中模拟它们
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"
}
请告诉我,如果我遗漏某些东西或需要做些修改。
先谢谢:) 艾米
答案 0 :(得分:4)
你不应该将@TestMixin
与@TestFor
一起使用,因为TestMixin来自grails 1.3中的旧单元测试 - 我建议删除它
答案 1 :(得分: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)
}
}
@TestFor
mixin处理控制器模拟。您可以在此处访问某些关键字,例如controller
,contoller.params
,controller.request
,controller.response
,而无需实例化控制器。
@Mock
负责模拟域类Employee
。