Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Grails2.1.1-对域类元素进行单元测试和模拟_Unit Testing_Grails_Grails 2.0 - Fatal编程技术网

Unit testing Grails2.1.1-对域类元素进行单元测试和模拟

Unit 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

我需要一些帮助来为我的项目编写单元测试。 我已经为我的控制器和域创建了单元测试类

我的问题是- 我有一个名为employee的域类 它有- 字符串id 字符串名 字符串中间首字母 字符串姓氏 字符串状态 字符串空类型 字符串用户ID

我想在测试类EmployeeControllerTest()下的setUp()方法中模拟它们

我添加了以下Mixin
如果我遗漏了什么或者需要做一些修改,请告诉我

提前感谢:)
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是新手。。。我正在努力。谢谢你的帮助,我很快就会回来:)嗨,我可以继续了。我有所有的类,包括-域,控制器,单元测试在公共包下作为“文件”。我已经改变了它,它现在正在工作。我有在同一个包下的所有类,现在它正在工作。但是,我们可以将它们划分为单独的域类、控制器类和服务类以及测试类。这是正确的方法吗?谢谢-我已经从我的域测试类和控制器测试类中删除了它…谢谢-我已经从我的域测试类和控制器测试类中删除了它。。。