4

我有一个使用 CSV.foreach 方法的方法。数据应如下所示:

1,0,0,1

1,1,0,0

我想编写一个测试,如果我每行中的元素数量不同,则该测试会出现错误。

就像是:

it "should raise an error if input file lines size differ" do
  expect { my_method(invalid_file_name) }.to raise_error
end

如何模拟 CSV 的 foreach 方法以返回无效输入?

4

2 回答 2

10

您确实可以存根 CSV 的foreach方法,但是您需要使用该and_yield方法和链接来生成多行,即:

CSV.stub(:foreach).and_yield(<first_line>).and_yield(<second_line)
于 2013-07-29T22:38:30.060 回答
-1

你可以做

CSV.stub(:foreach).and_retuen(<invalid_output>)

它就像存根任何其他方法一样。

于 2013-07-29T21:35:32.903 回答