Я написал пост в блоге о тестировании API-интерфейсов JSON с RSpec пару недель назад.
По сути, мы делаем это, чтобы получить реальный ответ и проанализировать его, чтобы убедиться, что он имеет правильное содержание.В качестве примера:
context "#index (GET /artworks.json)" do
# create 30 Artwork documents using FactoryGirl, and do a HTTP GET request on "/artworks.json"
before(:each) do
30.times { FactoryGirl.create(:artwork) }
get "/artworks.json"
end
describe "should list all artworks" do
# the request returns a variable called "response", which we can then make sure comes back as expected
it { response.should be_ok }
it { JSON.parse(response.body)["results"].should be_a_kind_of(Array) }
it { JSON.parse(response.body)["results"].length.should eq 30 }
# etc...
end
end
Очевидно, простой пример, но, надеюсь, вы поняли идею.Надеюсь, это поможет.