gpt4 book ai didi

ruby - Rspec 测试放置(二维数组)

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:07 25 4
gpt4 key购买 nike

我是 Rspec 的新手,我想为打印二维数组的方法创建一个 rspec 示例。

打印数组的方法:

 def print_array
array.each do |row|
row.each do |cell|
print cell
end
puts
end
end

例如,上述代码的结果可能是:

 0 0 0
0 0 0
0 0 0

所以我想为上述方法创建一个期望(rspec)。

我尝试检查 puts 和 print (STDOUT) 但没有成功:

 it "prints the array" do
...
expect(STDOUT).to receive(:puts).with("0 0 0 ...")
obj.print_array
end

有没有办法测试到底打印出了什么?

最佳答案

RSpec 有一个 output matcher专门针对这类事情,所以你的例子会变成这样

def print_array(array)
array.each do |row|
row.each do |cell|
print cell
end
puts
end
end

RSpec.describe 'print_array' do
it 'prints the array' do

expect do
print_array([
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
])
end.to output("000\n000\n000\n").to_stdout
end
end

关于ruby - Rspec 测试放置(二维数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45111820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com