Сначала простите за мой английский:)
Мне нужно реализовать тесты контроллера API в приложении Ruby on Rails (v 4.2.0).
Когда я запрашиваю GET Advertising Sources, у меня появляется ответ json:
{"advertising_sources":[{"id":59,"title":"accusantium"},{"id":60,"title":"assumenda"}]}
Шаблон ответа JSON был определен разработчиком интерфейса.
Сейчас я пытаюсь создать тесты для:
1. Размер JSON (2 источника рекламы)
2. включенные атрибуты (id, title)
Мои тесты:
it 'returns list of advertising sources' do
expect(response.body).to have_json_size(2)
end
%w(id title).each do |attr|
it "returns json with #{attr} included" do
hash_body = JSON.parse(response.body)
expect(hash_body).to include(attr)
end
end
Неудачи:
1. Failure/Error: expect(response.body).to have_json_size(2)
expected {"advertising_sources":[{"id":59,"title":"accusantium"},{"id":60,"title":"assumenda"}]} to respond to `has_json_size?`
2. Failure/Error: expect(hash_body).to include(attr)
expected {"advertising_sources" => [{"id" => 71, "title" => "necessitatibus"}, {"id" => 72, "title" => "impedit"}]} to include "id"
Diff:
@@ -1,2 +1,2 @@
-["id"]
+"advertising_sources" => [{"id"=>71, "title"=>"necessitatibus"}, {"id"=>72, "title"=>"impedit"}],
Может ли кто-нибудь помочь мне исправить код моего теста?
Спасибо!