我的规格:
it "has empty thread" do
Thread.current[:foo].should be_nil
Thread.current[:foo] = "bar"
end
it "has empty thread" do
Thread.current[:foo].should be_nil
end
第二个规范失败,因为先前的规范改变了线程。 如何在不同的线程中运行规范,或者在每个规范或其他内容之前将线程的密钥“无效”以传递第二个规范?
答案 0 :(得分:1)
您可以在规范中创建Thread
;不要忘记join
它从重新评估的线程中获取should
的结果:
it "has empty thread" do
Thread.new {
Thread.current[:foo].should be_nil
Thread.current[:foo] = "bar"
}.join
end
it "has empty thread" do
Thread.new {
Thread.current[:foo].should be_nil
}.join
end