假设我的 Controller 中有一个简单的 Action ,其结尾是:
render(contentType: "text/json") {
message = 'some text'
foo = 'bar'
}
它按照 JSON 构建器 documentation 正确呈现.但是,当我尝试在 ControllerUnitTest 中对该响应进行单元测试时,我得到一个带有
controller.response.contentAsString
的空白字符串。 .我什至试过 controller.renderArgs
,但它只包含 contentType: "text/json"
.当我将 JSON 转换为 map 并对其进行编码时
as JSON
,然后我就可以正常测试了。但是有没有办法对代码进行单元测试?
最佳答案
您必须在测试中调用操作并使用 controller.response.contentAsString 比较结果
所以你的测试方法看起来像
void testSomeRender() {
controller.someRender()
assertEquals "jsonString", controller.response.contentAsString
}
关于unit-testing - 单元测试在 Grails 中使用 JsonBuilder 呈现 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841296/