下面是根据RSpec book中的示例传递代码。
在describe "#start"
块中,为什么should_receive...'Welcome to Codebreaker!
来之前game.start
?
在我看来,在调用 start 方法之前不会放置文本。但是,如果我重新排序这两行,测试将不再通过。
为什么是这样?
lib/codebreaker.rb
module Codebreaker
class Game
def initialize(output)
@output = output
end
def start
@output.puts "Welcome to Codebreaker!"
end
end
end
规范/codebreaker_spec.rb
require 'codebreaker'
module Codebreaker
describe Game do
let(:output) { double('output') }
let(:game) { Game.new(output) }
describe "#start" do
it "sends a welcome message" do
output.should_receive(:puts).with('Welcome to Codebreaker!')
game.start
end
end
end
end