【问题标题】:Is there an equivalent to RSpec's before(:all) in MiniTest?MiniTest 中是否有与 RSpec 的 before(:all) 等价的功能?
【发布时间】:2011-02-03 03:49:25
【问题描述】:
由于它现在似乎已在 1.9.1 中取代了 TestUnit,我似乎找不到与此等效的东西。 有次你真的只想让一个方法为测试套件运行一次。
现在我已经采取了一些可爱的黑客行为:
Class ParseStandardWindTest < MiniTest::Unit::TestCase
@@reader ||= PolicyDataReader.new(Time.now)
@@data ||= @@reader.parse
def test_stuff
transaction = @@data[:transaction]
assert true, transaction
end
end
【问题讨论】:
标签:
ruby
unit-testing
minitest
【解决方案1】:
不,只有 setup 和 teardown 两者都在每次测试之前/之后运行。但是您的解决方案似乎可以解决问题。
【解决方案2】:
最好使用我发现的“让”。
例如(使用minitest/spec)
describe "my amazing test" do
let(:reader) { PolicyDataReader.new(Time.now) }
let(:data) {reader.parse}
it "should parse" do
transaction = data[:transaction]
transaction.must_equal true
end
end
要使用minitest/spec,只需添加
gem 'minitest', require: ['minitest/autorun', 'minitest/spec']
到你Gemfile的测试组