Unit testing 如何在“内部”中声明值;渲染“;单元测试用例中(grails、junit)

Unit testing 如何在“内部”中声明值;渲染“;单元测试用例中(grails、junit),unit-testing,grails,junit,Unit Testing,Grails,Junit,我试图在用Grails编写的单元测试用例中断言“render”中的值。但这似乎并不恰当 render(view:"create",model[:]) 我尝试的是 assertEquals(“创建”,渲染器(“视图”)) 我还尝试了一些替代方案,如controller.response.renderdurl等,但都不起作用。 有人能给个主意吗 提前感谢,, BK要测试视图,您只需使用隐式视图变量,尽管它将指向视图/模板的路径,例如/controller/create。因此您可以编写asse

我试图在用Grails编写的单元测试用例中断言“render”中的值。但这似乎并不恰当

   render(view:"create",model[:])
我尝试的是 assertEquals(“创建”,渲染器(“视图”))

我还尝试了一些替代方案,如controller.response.renderdurl等,但都不起作用。 有人能给个主意吗

提前感谢,,
BK

要测试视图,您只需使用隐式
视图
变量,尽管它将指向视图/模板的路径,例如
/controller/create
。因此您可以编写
assertEquals(查看,'/controller/create')
。还有一个隐式
模型
变量,您可以对其进行类似处理


请参阅(测试视图渲染部分)。

以下测试有效:

grails应用程序/controllers/demo/DemoController.groovy:

package demo

class DemoController {

    def index() {
        render view: 'first'
    }
}
测试/单元/演示/演示控制器spec.groovy:

package demo

import grails.test.mixin.TestFor
import spock.lang.Specification

@TestFor(DemoController)
class DemoControllerSpec extends Specification {

    void "test render view"() {
        when:
        controller.index()

        then:
        '/demo/first' == view
    }
}
测试/单元/演示/演示控制器测试。groovy:

package demo

import grails.test.mixin.TestFor

@TestFor(DemoController)
class DemoControllerTests {

    void testRenderView() {
        controller.index()
        assert '/demo/first' == view
    }
}
我希望这有帮助