Не могу получить тесты, работающие с Selenium, Capybara-webkit; RackTest работает отлично - PullRequest
2 голосов
/ 10 февраля 2012

У меня есть эта спецификация интеграции:

feature "When buying a deal, a user" do
  let(:current_market) { Factory.create(:market) }
  let(:deal) { Factory.create(:deal_with_products, market: current_market) }

  scenario "can change quanitity and see an updated total" do
    visit_checkout_for_product deal.products.first
    # ...
  end

  # ...
end

def visit_checkout_for_product(product)
  visit deal_path current_market, product.deal
  choose product.title
  click_button 'buy now'
end

Это прекрасно работает с RackTest, но когда я изменяю спецификацию на:

  scenario "can change quanitity and see an updated total", js: true do
    visit_checkout_for_product deal.products.first
    # ...
  end

Мои тесты срываются, давая мне500 Internal Server ошибка примерно такая:

enter image description here

Кажется, я никак не могу найти трассировку стека, но я уверен, что nil:NilClass должно быть deal пусть переменная определена ранее.

Я не могу понять, почему это вообще не проблема с RackTest ... есть какая-то дополнительная конфигурация, которую я здесь упускаю?

Я использую RSpec 2.8.0 и Rails 3.1.1.Пожалуйста, дайте мне знать, если вам нужно увидеть какие-либо другие файлы.

1 Ответ

3 голосов
/ 10 февраля 2012

Проблема была database_cleaner , которая не была настроена правильно, так как она стирала мои тестовые данные до запуска тестов Selenium / capybara-webkit.Вот конфиг, который я сейчас использую, позволяющий пройти все:

DatabaseCleaner.strategy = :truncation

RSpec.configure do |config|
  config.use_transactional_fixtures = false
  config.before(:each) { DatabaseCleaner.start }
  config.after(:each) { DatabaseCleaner.clean }
end
...