【发布时间】:2018-12-29 01:05:59
【问题描述】:
我似乎无法让我的测试因虚假数据而失败,所以这告诉我我没有正确测试我的实际数据。我的视图显示解析的 JSON 响应(我已在浏览器中验证),但我似乎无法在测试中验证这一点。
# Arrange
account = accounts(:good_account) # from fixture
expected_data = { "status": "SUCCESS" }.to_json
phony_data = { "bestBearType": "BLACK" }.to_json
# Act
get some_show_url(account.id)
# Assert
assert_select 'p', JSON.parse(expected_data) # passes
assert_select 'p', JSON.parse(phony_data) # passes (shouldn't)
assert_select 'p', { "bestBearType": "BLACK" } # passes (shouldn't)
assert_select 'p', expected_data # fails
对于虚假数据是如何传递的,我实在是摸不着头脑。就好像我只有 assert_select 'p' 而没有接下来的预期值。在这里使用解析的 JSON 有问题吗?
【问题讨论】:
-
真的不清楚你想用
{ "status": "SUCCESS" }做什么。你想匹配<p status="success">之类的东西吗?那不是有效的 HTML。需要明确的是,JSON 与assert_select无关,后者用于处理 HTML。
标签: ruby-on-rails json ruby assert minitest