【发布时间】:2012-12-13 08:35:22
【问题描述】:
我正在使用 RSpec 在 gem 中测试类级别的实例变量(和设置器)。我需要测试以下内容:
- 如果从不使用 setter,则会提供正确的默认值。
- 变量可以通过setter成功更新。
显然这里存在运行顺序问题。如果我使用设置器更改值,我会忘记默认值是什么。我可以在 setter 测试之前将它保存到一个变量中,然后在最后重置该值,但这只有在所有 setter 测试都遵循相同的做法时才能保护我。
测试变量默认值的最佳方法是什么?
这是一个简单的例子:
class Foo
class << self
attr_accessor :items
end
@items = %w(foo bar baz) # Set the default
...
end
describe Foo do
it "should have a default" do
Foo.items.should eq(%w(foo bar baz))
end
it "should allow items to be added" do
Foo.items << "kittens"
Foo.items.include?("kittens").should eq(true)
end
end
【问题讨论】:
-
哦,所以你的意思是
Foo.bar = 1? -
是的,代码更新了一个例子。