首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何测试Ruby on Rails功能测试的JSON结果?

如何测试Ruby on Rails功能测试的JSON结果?
EN

Stack Overflow用户
提问于 2008-12-03 10:07:31
回答 7查看 39.4K关注 0票数 76

如何断言我的Ajax请求并测试Ruby on Rails功能测试的JSON输出?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-12-28 06:15:33

在Rails >= 5中

使用ActionDispatch::TestResponse#parsed_body

示例:

代码语言:javascript
复制
user = @response.parsed_body
assert_equal "Mike", user['name']

在Rails高达4.x版本中

使用JSON.parse,它接受一个字符串作为输入,并返回一个JSON表示的Ruby hash。

示例:

代码语言:javascript
复制
user = JSON.parse(@response.body)
assert_equal "Mike", user['name']
票数 92
EN

Stack Overflow用户

发布于 2010-08-21 04:12:19

Rails内置了JSON支持:

代码语言:javascript
复制
def json_response
    ActiveSupport::JSON.decode @response.body
end

不需要插件

然后你可以这样做:

代码语言:javascript
复制
assert_equal "Mike", json_response['name']
票数 90
EN

Stack Overflow用户

发布于 2010-03-20 09:22:27

此外,对于简短的JSON响应,您可以简单地将JSON的字符串与@response.body进行匹配。这就避免了不得不依赖于另一个gem。

代码语言:javascript
复制
assert_equal '{"total_votes":1}', @response.body
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/336716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档