Конструкция var[:test] ||= value
по существу означает:
if there is a key :test in hash
var[:test] should remain what it is
else
var[:test] = value
Это означает, что у вас есть два теста на руках, что-то вроде:
it "should not override var[:test]"
it "should set var[:test] to be equal to 'value'"
Например, скажем,у вас есть класс:
class Blah
attr_reader :var
def initialize(var={})
@var=var
end
def set_test_key(value)
var[:test] ||= "value"
end
end
Вы можете сделать что-то вроде:
describe Blah do
it "should not override var[:test]" do
blah = Blah.new({:test=>"foo"})
blah.set_test_key("bar")
blah.should equal("foo")
end
it "should set var[:test] to be equal to 'bar'" do
blah = Blah.new
blah.set_test_key("bar")
blah.should equal("bar")
end
end
Вот в чем суть, его нужно будет адаптировать к вашей ситуации.