CSV的Rails测试内容下载

时间:2018-07-10 18:36:27

标签: ruby-on-rails testing export-to-csv

我有一个项目设置为以csv的形式从页面下载信息。我正在尝试编写一个测试,以确保此csv的内容与网站上显示的内容匹配,但是我不确定如何访问CSV的内容。这是我目前的尝试:

 test "check_acquired_shares_contents" do       
           data = ["Label Amount Of Shares Share Price Total Price Occurred On From Shareholder Share Transaction Action Share Transaction Type",
                    "Initial 100.0 100.0 10000.0 2001-05-06 CREATE ESPP", "On Date 20.0 10.0 200.0 2012-05-06 Bill TRANSFER INDIVIDUAL",
                    "Label Amount Of Shares Share Price Total Price Occurred On To Shareholder Share Transaction Action Share Transaction Type",
                    "Individual_transfers 10.0 10.0 100.0 2010-05-06 Bill TRANSFER INDIVIDUAL"]
            visit admin_shareholder_path(id: 1)
            find('.action_item', :text => 'Acquired Shares CSV').click
            #binding.pry
            assert data == page.all('tr').map { |tr| tr.text }

    end

数据数组是CSV所要包含的内容。但是,我认为我没有检查CSV的内容,因为测试总是失败。

有人对如何检查CSV内容有想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

读取CSV文件本身可以很好地在此处测试确切的CSV方案

您可以执行以下操作:

Display

您将得到的是:

require 'csv' csv_data = CSV.read('csv_file_name.csv', { encoding: 'UTF-8', headers: true, converters: :all, header_converters: :symbol}) data = csv_data.map { |d| d.to_hash }

现在,您可以通过将这些数据与期望的数据进行比较来轻松编写测试用例。