在Ruby on Rails项目中使用Capybara进行集成测试时,状态转换不会在数据库中持续存在

时间:2015-01-14 11:29:12

标签: ruby-on-rails ruby-on-rails-3.2 capybara integration-testing

我正在使用state_machine gem - https://github.com/pluginaweek/state_machine

在我与CAPYBARA的测试环境中我正在执行

order.good_data!
在我的状态机中定义的事件中

good_data

state_machine :initial => :new, :use_transactions => false do

  event :good_data do
    transition [:new] => :sane
  end

end

当我检查我的数据库中的订单时,它仍处于new状态。

它在我的生产和开发环境中正常工作。

1 个答案:

答案 0 :(得分:1)

使用database_cleaner执行清理。 Capybara使用不同的线程,因此您的事务正在一个单独的线程中执行。