противоречивые тесты Rspec / Capybara - PullRequest
0 голосов
/ 29 марта 2012

Я закомментировал [get "pages / home"] в моем файле rout.rb, перезапустил всю мою тестовую среду и прошел следующий тест STILL:

it "should contain 'This is a test'" do
  get 'home'
  response.body.should have_selector("p")
end

Насколько я понимаю, капибара запускаетТесты rspec из «браузера» в памяти.В этом случае маршруты рельсов ДОЛЖНЫ существовать!Закомментировав мои маршруты, он все еще может загружать страницы - я знаю это, потому что, если я уберу селектор <p>, тест не пройден.После изменения файла rout.rb я перезапустил свой набор тестов, но это не имеет значения.

Это заставляет меня терять доверие к процессу тестирования, потому что у меня есть прохождение тестов, которые не должны проходить !!

1 Ответ

1 голос
/ 29 марта 2012

Похоже, этот фрагмент находится в спецификации контроллера, который напрямую попадает в ваш контроллер. В последней версии rspec 2.9.0 плохой маршрут не приведет к сбою этого примера. Маршруты не входят в компетенцию контроллера.

Похоже, вы намеревались написать спецификацию запроса, в которой должен использоваться метод visit Капибары:

# spec/requests/something_spec.rb
require 'spec_helper'

describe 'home page' do

  it "should contain 'This is a test'" do
    visit '/pages/home'
    page.should have_content 'This is a test'
  end

end

См. документы на капибару для дополнительных примеров. Rspec также поддерживает спецификации маршрутизации , но я обычно использую их только для необычной маршрутизации.

...