来自 Minitest 自述文件:
=== How to share code across test classes?
Use a module. That's exactly what they're for:
module UsefulStuff
def useful_method
# ...
end
end
describe Blah do
include UsefulStuff
def test_whatever
# useful_method available here
end
end
只需在文件中定义模块并使用 require 将其拉入。例如,如果在 test/support/useful_stuff.rb 中定义了“UsefulStuff”,则您可能在任何一个单独的测试文件中都需要“support/useful_stuff”。
更新:
为了澄清,在您现有的 test/test_helper.rb 文件或您创建的新 test/test_helper.rb 文件中,包括以下内容:
Dir[Rails.root.join("test/support/**/*.rb")].each { |f| require f }
这将需要 test/support 子目录中的所有文件。
然后,在每个单独的测试文件中添加
require 'test_helper'
这与 RSpec 完全相同,在每个规范文件的顶部都有一个 require 'spec_helper' 行。