清除Rspec示例之间的类实例变量

时间:2011-10-26 07:31:08

标签: ruby-on-rails ruby rspec rspec2

我正在编写一个扩展ActiveRecord的我的宝石的规格。它必须做的一件事是设置一个类实例变量,如下所示:

class MyModel < ActiveRecord::Base
  @foo = "asd"
end

现在当我在一个it "should" {}中设置@foo时,它会持续到下一个。{0}我知道这是正常的Ruby行为,但我认为RSpec有一些魔法可以清除规格之间的所有内容。我想知道如何在我的所有测试中重复使用单个AR模型(​​因为创建一堆表会很痛苦),同时确保在每次测试之间清除@foo。我需要手动执行此操作吗?

2 个答案:

答案 0 :(得分:1)

我最后在我的帮助器类中生成了一个使用Class.new生成新类的方法,因此我可以确定测试之间没有遗留任何内容。

答案 1 :(得分:0)

您应该好好利用after :each阻止。

after(:each) do 
  @foo = nil
end