![]() |
1
79
使用 JSON gem的json.parse,它将字符串作为输入,并返回json表示的Ruby哈希。 以下是测试的基本要点:
以下是宝石的文档: http://json.rubyforge.org/ . 此外,您还可以在 IRB 很容易。 |
![]() |
2
83
Rails内置了JSON支持:
不需要插件 然后你可以这样做:
|
![]() |
3
6
如果您使用的是RSPEC, 詹森规格 值得一看 |
![]() |
4
4
此外,对于简短的JSON响应,您可以简单地将一个JSON字符串匹配到@response.body。这就避免了不得不依赖另一块宝石。
|
![]() |
5
1
实际上,您可以隐式使用JSON模块:
|
![]() |
6
1
如前所述,您使用json.parse来测试JSON,但是在哪里执行该断言取决于您如何呈现JSON。 如果要在控制器中生成JSON,则需要在控制器功能测试中解析JSON(如其他答案所示)。如果要呈现JSON,则使用 Jbuilder , rabl 或者另一个采用这种方法的宝石,然后 parse the JSON in the view unit tests 不是控制器功能测试。单元测试通常执行更快,编写更容易,例如,您可以在内存中构建模型,而不是在数据库中创建模型。 |
![]() |
7
0
这些答案都不能提供一种很好的可维护性方法来验证JSON响应。我觉得这个最好: https://github.com/ruby-json-schema/json-schema 它为标准提供了一个很好的实现 json schema 您可以编写如下模式:
使用方式如下:
根据我的Android客户端实现验证它的最佳方法。 |
![]() |
8
0
在较新版本的Rails中,您可以利用
https://api.rubyonrails.org/v5.2.1/classes/ActionDispatch/IntegrationTest.html |
![]() |
9
-1
你可以使用 AssertJson gem 对于一个不错的DSL,它允许您检查JSON响应中应该存在的键和值。
把宝石加到你的
这是一个很快的例子,你的功能/控制器测试看起来是怎样的(这个例子是从他们的 README ):
你只需要包括
|
![]() |
cluster1 · 采取独立的新行动的好处是什么? 7 月前 |
|
Robert · 使用JSON或哈希时,将NULL替换为NIL 7 月前 |
![]() |
Fred Willmore · Rails控制器不呈现任何模板 1 年前 |
![]() |
Diogo Amaral · 实现API请求的正确方式 1 年前 |
![]() |
Meknassih · 在控制器方法中分配给模型没有任何作用 1 年前 |
![]() |
Michael Ding · Rails上的默认会话到期问题 1 年前 |
|
Flávio · 基于另外两个生成数组 1 年前 |