我正在使用Rspec为我的程序进行一些测试.在一个规范中,我实例化了一次类,并使用describe和contexts对它进行测试.如果它似乎在上下文结束时被评估,我遇到了一些有趣的东西.例如,给定以下类及其相关规范:
class Tmp
def initialize
@values = {}
end
def modify(new_value1, new_value2)
@values = {:a => new_value1, :b => new_value2}
end
def get_values
return @values
end
end
Run Code Online (Sandbox Code Playgroud)
describe Tmp do
tmp = Tmp.new()
describe "testing something" do
context "change value" do
# First evaluation
tmp.modify("hi", "bye")
it {tmp.get_values.should == {:a => "hi", :b => "bye"}}
# Second evaluation
tmp.modify("bye", "hi")
it {tmp.get_values.should == {:a => "bye", :b => "hi"}}
end
end
end
Run Code Online (Sandbox Code Playgroud)
使用提供的类和规范结果如下:
F. …Run Code Online (Sandbox Code Playgroud)