首页 > 解决方案 > 测试 CSV 相关方法的正确方法是什么。规格

问题描述

我有一个 CSV 写入方法,如下所示:

def self.write(output_path:, data:)
    CSV.open(output_path, "w") do |csv|
      data.each do |row|
        csv << row
      end
    end
  end

一般来说,我想对CSV类进行存根,并且我想确保将正确的输入发送到该方法。我如何测试我们是否遍历数据并将每一行发送到 csv 对象?我在这里做什么来测试这个?

我的计划是确定csv产生的结果是什么,用 an 存根instance_double并检查它是否接收:<<到我迭代的每条数据。但是,csv对象是:

<#CSV io_type:File io_path:"./public/output/redemptions.csv" encoding:UTF-8 lineno:1 col_sep:"," row_sep:"\n" quote_char:"\"">

那是什么?我该如何存根?我尝试使用 instance_double 对它进行存根,CSV但没有奏效,它抱怨它收到了一个意外的<<. 有什么建议吗?

标签: ruby

解决方案


推荐阅读