Unit testing Grails2.1.1-对域类元素进行单元测试和模拟
我需要一些帮助来为我的项目编写单元测试。 我已经为我的控制器和域创建了单元测试类 我的问题是- 我有一个名为employee的域类 它有- 字符串id 字符串名 字符串中间首字母 字符串姓氏 字符串状态 字符串空类型 字符串用户ID 我想在测试类EmployeeControllerTest()下的setUp()方法中模拟它们 我添加了以下MixinUnit testing Grails2.1.1-对域类元素进行单元测试和模拟,unit-testing,grails,grails-2.0,Unit Testing,Grails,Grails 2.0,我需要一些帮助来为我的项目编写单元测试。 我已经为我的控制器和域创建了单元测试类 我的问题是- 我有一个名为employee的域类 它有- 字符串id 字符串名 字符串中间首字母 字符串姓氏 字符串状态 字符串空类型 字符串用户ID 我想在测试类EmployeeControllerTest()下的setUp()方法中模拟它们 我添加了以下Mixin 如果我遗漏了什么或者需要做一些修改,请告诉我 提前感谢:) Amy您不应该将@TestMixin与@TestFor一起使用,因为TestMixin
如果我遗漏了什么或者需要做一些修改,请告诉我 提前感谢:)
Amy您不应该将
@TestMixin
与@TestFor
一起使用,因为TestMixin来自Grails1.3中的旧单元测试材料-我建议将其删除您不应该将@TestMixin
与@TestFor
一起使用,因为TestMixin来自Grails1.3-I中的旧单元测试材料建议删除它您的单元测试用例可以减少为几行代码:
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
,而无需实例化controller
@Mock
负责模拟域类Employee
您的单元测试用例可以减少为几行代码:
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
,而无需实例化controller
@Mock
负责模拟域类Employee
它说编译错误:|编译14个源文件。|错误编译错误编译[unit]测试:启动失败:C:\Users\amar\Documents\NetBeansProjects\File\test\unit\EmployeeControllerTests.groovy:39:无法解析第39行第17列的类Employee。def ce=new Employee(empNo:“001”,firstname:“amy”,…^1 error是的,因为Employee
没有导入。当我说了几行代码时,我并不是说我可以跳过导入语句。:)对此表示歉意,实际上我对grails是新手。。。我正在努力。谢谢你的帮助,我很快就会回来:)嗨,我可以继续了。我有所有的类,包括-域,控制器,单元测试在公共包下作为“文件”。我已经改变了它,它现在正在工作。我有在同一个包下的所有类,现在它正在工作。但是,我们可以将它们划分为单独的域类、控制器类和服务类以及测试类。这是正确的方法吗?它说编译错误:|编译14个源文件。|错误编译错误编译[unit]测试:启动失败:C:\Users\amar\Documents\NetBeansProjects\File\test\unit\EmployeeControllerTests.groovy:39:无法解析第39行第17列的类Employee。def ce=new Employee(empNo:“001”,firstname:“amy”,…^1 error是的,因为Employee
没有导入。当我说了几行代码时,我并不是说我可以跳过导入语句。:)对此表示歉意,实际上我对grails是新手。。。我正在努力。谢谢你的帮助,我很快就会回来:)嗨,我可以继续了。我有所有的类,包括-域,控制器,单元测试在公共包下作为“文件”。我已经改变了它,它现在正在工作。我有在同一个包下的所有类,现在它正在工作。但是,我们可以将它们划分为单独的域类、控制器类和服务类以及测试类。这是正确的方法吗?谢谢-我已经从我的域测试类和控制器测试类中删除了它…谢谢-我已经从我的域测试类和控制器测试类中删除了它。。。