我有一个使用XML和Web响应(API和网站)的RESTful站点。由于页面很多,我目前的目标是设置RSpec来简单地请求两种数据格式的每个页面,并检查返回的响应是否为200.检查XML和HTTP 200响应的最佳方法是什么?我知道我应该提前做TDD,但现在我需要这个作为shell。
示例:我想请求“/ users”和“/users.xml”并测试是否没有任何服务器错误(200 OK)
答案 0 :(得分:2)
几个星期前我在testing JSON APIs with 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
显然是一个简单的例子,但希望你能得到这个想法。我希望这会有所帮助。