teardownも同じくどっちでも変わらないと思ってた。しかし、前者は上書きだけど後者は親クラスのsetupも呼んでくれるので後者の方が良い。例えば下記みたいにintegrationテストだけは全部js実行できるブラウザでテストしたいけどいちいち書いてられない場合。

# test/test_helper.rb:
class ActionDispatch::IntegrationTest
  setup do
    Capybara.current_driver = Capybara.javascript_driver
  end
end
# test/integration/post_comment_test.rb:
class PostCommentTest < ActionDispatch::IntegrationTest
  setup do
    sign_in('foo@example.com', 'password')
  end

  test 'post a comment' do
    (...)
  end
end

superが要らないのは気持ちいい。

Comments


(Option)