Я использую Машинист, чтобы создать свои тестовые пользователь, которые я хочу войти перед каждым испытанием, которое я бег с Капибара:тестов функции Капибара не совершающие транзакций базы данных
include Capybara::DSL
include ActionController::UrlWriter
before do
SslRequirement.disable_ssl_check = true
user = User.make
visit new_user_session_path
fill_in('username', with: user.email)
fill_in('password', with: '12345')
click_button('submit')
end
it "responds as expected" do
# ...
end
Теперь, когда пользователь создаются с User.make
я могу получить доступ к нему через User.all
когда это факт, это не сохраняется в базе данных все же, это происходит потому, что
ActiveRecord::Base.connection.open_transactions == 1
я могу исправить/взломать это, делая
ActiveRecord::Base.connection.commit_db_transaction
после User.make
, но я предпочел бы исправить это правильно. Является ли это конфигурацией Capybara, которую мне не хватает? Отказ от ответственности: Использование Rails 2.3
и RSpec 1.3
Как и в предыдущей ситуации, выполните все настройки заранее? – Mahoni
Я добавил ссылку на сообщение в блоге об этом, которое должно быть хорошо для возраста рельсов и rspec, которые вы используете –