ops*_*psb 19 rspec constants rspec2
我经常想做
context "empty stack" do
SOME_CONSTANT = "value"
it "should be empty" do
# use SOME_CONSTANT
end
end
context "populated stack" do
SOME_CONSTANT = "a different value"
it "should have some items" do
# use SOME_CONSTANT
end
end
Run Code Online (Sandbox Code Playgroud)
ruby不会将常量范围限制为闭包,因此它们会泄漏出来.有没有人有一个技巧来声明作用于上下文的常量?
小智 22
更改常量的声明:
从.SOME_CONSTANT = "value"
到self::SOME_CONSTANT = "value"
RSpec为它遇到的每组规范(示例中的上下文)创建一个匿名类.self::
在没有匿名类的情况下声明常量使其在全局范围内可用,并且对所有规范都可见.更改常量声明以self::
确保它仅在匿名类中可见.
ops*_*psb 21
现在使用rspec的时间越长,我认为更惯用的方法是使用let.
context "empty stack" do
let(:some_constant){ "value" }
it "should be empty" do
puts some_constant
end
end
context "populated stack" do
let(:some_constant){ "a different value" }
it "should have some items" do
puts some_constant
end
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7550 次 |
最近记录: |