Unit testing 如何在“内部”中声明值;渲染“;单元测试用例中(grails、junit)
我试图在用Grails编写的单元测试用例中断言“render”中的值。但这似乎并不恰当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
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
}
}
我希望这有帮助