配置Turnip和Database_cleaner

时间:2013-03-18 21:23:17

标签: javascript ruby-on-rails rspec capybara database-cleaner

我使用Turnip和Ruby on Rails。我有使用和不使用javascript的场景。我想对非JavaScript场景使用transaction DatabaseCleaner策略,对truncation@javascript等标记的场景使用@selenium策略。

我使用Rspec Features

的以下解决方案
config.around(:each, :js => true) do |ex|
  DatabaseCleaner.strategy = :truncation
  ex.run
  DatabaseCleaner.strategy = :transaction
end

但它在Turnip案件中并不起作用。使它按预期工作的最佳方法是什么?或者换句话说,如何在@javascript中指定由@selenium(或config.before等)标记标记的萝卜情景?

1 个答案:

答案 0 :(得分:5)

通过检查code of Turnip我产生这样的配置选项

 config.around(:each, type: :feature, javascript: true) do |example|
   DatabaseCleaner.strategy = :truncation
   example.run
   DatabaseCleaner.strategy = :transaction
 end

在这种情况下,当方案由truncation标记标记时,策略设置为@javascript,如下所示:

  @javascript
  Scenario: Viewing users
    Given the following users:

但是在我想要在一个场景中使用Selenium的时候,你不应该用@javascrtipt标签替换@selenium标签,而是在@selenium标签之后添加@javascript标签喜欢以下

  @javascript @selenium
  Scenario: Viewing users
    Given the following users: