如何编写在每个ActionDispatch :: IntegrationTest

时间:2018-10-19 09:19:13

标签: ruby-on-rails integration-testing actiondispatch

我为Rails 4应用程序使用ActionDispatch::IntegrationTest编写了许多集成测试。我试图在每个测试运行之前要调用的每个setupteardown上添加几行,而不要覆盖分别为setupteardown的回调特定于每个测试。

因此,基本上,我正在尝试执行以下操作:

class ActionDispatch::IntegrationTest
  setup do
    DatabaseCleaner.start
    super
  end

  teardown do
    Warden.test_reset!
    DatabaseCleaner.clean
    super
  end
end

我不希望它们覆盖更具体的设置,而是希望它们先运行。因此,我希望此设置在上面编写的基础代码之后运行:

class Authorized < ActionDispatch::IntegrationTest
  setup do
    @user = create(:user)
    sign_in(@user)
  end

  test 'some stuff' do
    # Integration test here
  end
end

我目前遇到上述错误:

NoMethodError: super called outside of method

,所以我想知道这样做的正确方法是什么。任何建议将不胜感激!预先感谢

0 个答案:

没有答案