以下内容来自The Rspec Book。我想知道为什么messages << message
indef puts
不是@messages << message
。我知道那||= []
是记忆,我也知道那@messages
是一个实例变量。那么,它应该在同一个类中使用吗?或者它是一个错字?
class Output
def messages
@messages ||= []
end
def puts(message)
messages << message
end
end
def output
@output ||= Output.new
end
Given /^I am not yet playing$/ do
end
When /^I start a new game$/ do
game = Codebreaker::Game.new(output)
game.start
end
Then /^I should see "([^"]*)"$/ do |message|
output.messages.should include(message)
end