如何在rails 3功能测试中断言响应体的内容

Nic*_*ilt 14 ruby-on-rails

我有一个Rails 3.0.7应用程序.在功能测试中,我有以下代码.我没有使用rspec或任何东西.这是带有导轨的普通香草功能测试.

assert_response :success
Run Code Online (Sandbox Code Playgroud)

以上断言正在过去.但是,我需要断言作为响应正文返回的完整内容.我如何访问响应正文?

Dan*_*oak 36

您可以通过以下方式访问功能测试中的响应正文:

response.body
Run Code Online (Sandbox Code Playgroud)

通常,在这种测试方式中,您确实想要使用该方法:

assert_select
Run Code Online (Sandbox Code Playgroud)

检查assert_select API的好方法是通过作弊gem:

gem install cheat
cheat assert_select
Run Code Online (Sandbox Code Playgroud)

  • `response.body` 将是一个 json 字符串。如果您需要像散列一样对其进行操作,那么您可以使用`JSON.parse(response.body)` 来获取该散列。 (3认同)