0

我有以下测试适用于 Rack::Test 但不使用 Selenium。即,如果我添加, js: true到描述块,我会在 Firefox 中收到一条错误消息,说明它couldn't find the License with id=(的 id @l

describe "should hide allocation rule # for pdf & clickthrough licenses" do

  it "reads current state and shows/hides fields appropriately" do                                     
    @l = FactoryGirl.create(:license:,
                          way: License::CLICK_WAY)                                                                                      
    visit edit_admin_license_path(@l)                                                                                           
  end
end

为什么?我一定是错过了什么。我可以使用 Sequel Pro 验证使用js: true.

我需要这个规范在 Selenium 中运行,因为我有 javascript 来测试。

4

1 回答 1

0

简单的解决方案是关闭事务性装置。

为什么我的 Cucumber 测试在使用 Selenium 运行时会失败?

在 spec/spec_helper.rb 中:

RSpec.configure do |config|
  config.use_transactional_fixtures = false

  config.before :each do
    if Capybara.current_driver == :rack_test
      DatabaseCleaner.strategy = :transaction
    else
      DatabaseCleaner.strategy = :truncation
    end
    DatabaseCleaner.start
  end

  config.after do
    DatabaseCleaner.clean
  end
end

在 Gemfile 中,测试部分

gem 'database_cleaner'
于 2012-08-07T23:42:55.863 回答