rails 3 unit test - 定义在每次测试之前运行的常规设置方法

Che*_*rot 3 unit-testing ruby-on-rails-3

我想db在每次测试之前清除我的运行,我应该在哪里放置脚本来实现这种行为?

p.m*_*los 6

虽然我无法想象你为什么要这样做,也许你可以试试这个:https://github.com/bmabey/database_cleaner

在任何情况下,每次测试之前可以调用的语句都应该放在调用setup中:

setup do
    # statements executed on start of every test
end
Run Code Online (Sandbox Code Playgroud)

更新:解释一下:

您可以做的一件事就是在您的test_helper.rb文件中:

class ActiveSupport::TestCase

  ### Common setup for all tests ###
  setup do
      # write code to clean up your database here
  end

end
Run Code Online (Sandbox Code Playgroud)

然后在您的实际测试文件中,ActiveSupport::TestCase您只需要从中获得测试类require 'test_helper'.

这样,在您运行的每个测试之前,将执行设置代码.

这是否解释了我在第一个答案中所写的内容?