gpt4 book ai didi

ruby-on-rails - 带有标题 : true 的 rspec stub CSV Foreach

转载 作者:行者123 更新时间:2023-12-04 06:17:17 24 4
gpt4 key购买 nike

我花了一整天的时间来找出如何使用 headers: true 在 RSPEC 中 stub 这个 CSV Foreach,然后使用 ROW 和 INDEX 的 do 块。我已经尝试了几件事,似乎不起作用。

这是我的模型

class Test

def self.import(file_path)
CSV.foreach(file_path, headers: true) do |row, index|
Here the rest of the code to create/insert record
end
end

end

然后在 rspec 上,我尝试了以下几种方法:
describe "Class" do
context "successfully insert" do
let(:data) { "name,lastname\nHero,SuperHero}" }

before do
# CSV foreach Stub here
CSV.stub(:foreach).with("file_path", headers: true).and_return(data)
end

it "inserts new record" do
expect do
Test.import("file_path")
end.to change(Test, :count).by(1)
end
end
end

它不起作用,它只会返回 CSV.foreach(file_path, headers: true) 的数据,但不会进入“do 块”。

任何有关此事的帮助,

非常感谢

最佳答案

我认为你需要使用 and_yield而不是 and_return这里。

检查 rspec-mocks 的自述文件:https://github.com/rspec/rspec-mocks .

关于ruby-on-rails - 带有标题 : true 的 rspec stub CSV Foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22653915/

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