Подход RSpec для проверки ответов XML и HTTP? - PullRequest
3 голосов
/ 12 сентября 2011

У меня есть сайт RESTful, который использует как XML, так и веб-ответы (API и веб-сайт). Поскольку страниц много, моей текущей целью является настройка RSpec для простого запроса каждой из страниц в обоих форматах данных и проверки, является ли возвращенный ответ 200. Каков наилучший способ проверить ответы XML и HTTP 200? Я знаю, что должен делать TDD заранее, но сейчас мне нужно это как оболочка.

Пример: я хочу запросить "/ users" и "/users.xml" и проверить, не было ли ошибок сервера (200 OK)

1 Ответ

2 голосов
/ 17 апреля 2012

Я написал пост в блоге о тестировании 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

Очевидно, простой пример, но, надеюсь, вы поняли идею.Надеюсь, это поможет.

...