在RSpec中,我想测试程序是否以正确的顺序将正确的消息打印到标准输出。我正在使用" puts"打印。输出应该是
A
B
C
我该怎么做?我试过了
messages = ['A', 'B', 'C']
messages.each do |message|
expect(STDOUT).to receive(puts).with(message).once
end
但是当我切换消息的顺序时,测试仍然通过。当消息以错误的顺序打印时,测试不应该通过。
我如何正确编写RSpec?
答案 0 :(得分:4)
如果您使用的是RSpec 3,则可以使用ordered
messages = ['A', 'B', 'C']
messages.each do |message|
expect(STDOUT).to receive(puts).with(message).ordered
end