如何断言我的Ajax请求并测试Ruby on Rails功能测试的JSON输出?
发布于 2008-12-28 06:15:33
在Rails >= 5中
使用ActionDispatch::TestResponse#parsed_body
。
示例:
user = @response.parsed_body
assert_equal "Mike", user['name']
在Rails高达4.x版本中
使用JSON.parse
,它接受一个字符串作为输入,并返回一个JSON表示的Ruby hash。
示例:
user = JSON.parse(@response.body)
assert_equal "Mike", user['name']
发布于 2010-08-21 04:12:19
Rails内置了JSON支持:
def json_response
ActiveSupport::JSON.decode @response.body
end
不需要插件
然后你可以这样做:
assert_equal "Mike", json_response['name']
发布于 2010-03-20 09:22:27
此外,对于简短的JSON响应,您可以简单地将JSON的字符串与@response.body进行匹配。这就避免了不得不依赖于另一个gem。
assert_equal '{"total_votes":1}', @response.body
https://stackoverflow.com/questions/336716
复制相似问题