我有一个项目设置为以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内容有想法吗?谢谢!
答案 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 }
现在,您可以通过将这些数据与期望的数据进行比较来轻松编写测试用例。