gpt4 book ai didi

unit-testing - Controller 在单元测试下返回空的contentAsString

转载 作者:行者123 更新时间:2023-12-02 15:09:36 24 4
gpt4 key购买 nike

有一些 Controller :

  def index() {
...
render(view: 'index', model: [exceptions: exceptions]
}

也有单元测试:
  def testIndex(){
...
controller.index()
assert controller.response.status == 200
assert controller.response.contentAsString != ""
}

第二个声明失败,因为 contentAsString返回“”。当我用 render()替换 render("html")时-即使在测试中, contentAsString也能实现。我做错了什么?

更新1

index.gsp
<%@ page contentType="text/html"%>
<%@ page import="org.apache.commons.lang.exception.ExceptionUtils" %>
<html>
<head>
<title>Exceptions catched during crawling</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<script type="text/javascript">
$(function(){
$(".stacktrace").hide()
$("a").click(function(){
$(this).parents("li").siblings("pre").toggle()
return false;
})
})
</script>
</head>
<body>
<g:each var="entry" in="${exceptions.entrySet()}">
Catched <b>${entry.key.name}</b> for these URLs:
<ol>
<g:each var="ex" in="${entry.value.entrySet()}">
<li><a href="${ex.key}">${ex.key}</a>: ${ex.value.message}</li>
<pre class="stacktrace">
${ExceptionUtils.getStackTrace(ex.value)}
</pre>
</g:each>
</ol>
</g:each>
</body>
</html>

更新2
从grails 2.2.3升级到grails 2.2.4没有帮助;(

最佳答案

好的,我重新回顾了文档的Unit Testing部分。似乎只有直接渲染文本时才能使用response.contentAsString。要渲染 View ,您可以检查文档的“测试 View 渲染”项。

例:

// Test class
class SimpleController {
def home() {
render view: "homePage", model: [title: "Hello World"]
}

}

void testIndex() {
controller.home()
assert view == "/simple/homePage"
assert model.title == "Hello World"
}

关于unit-testing - Controller 在单元测试下返回空的contentAsString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18464207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com