我正在编写一个扩展ActiveRecord的我的宝石的规格。它必须做的一件事是设置一个类实例变量,如下所示:
class MyModel < ActiveRecord::Base
@foo = "asd"
end
现在当我在一个it "should" {}
中设置@foo时,它会持续到下一个。{0}我知道这是正常的Ruby行为,但我认为RSpec有一些魔法可以清除规格之间的所有内容。我想知道如何在我的所有测试中重复使用单个AR模型(因为创建一堆表会很痛苦),同时确保在每次测试之间清除@foo。我需要手动执行此操作吗?
答案 0 :(得分:1)
我最后在我的帮助器类中生成了一个使用Class.new生成新类的方法,因此我可以确定测试之间没有遗留任何内容。
答案 1 :(得分:0)
您应该好好利用after :each
阻止。
after(:each) do
@foo = nil
end