使用RSpec测试CSV.generate [英] Testing CSV.generate with RSpec

查看:73
本文介绍了使用RSpec测试CSV.generate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在rails 3.1项目中有以下帮助程序-我只是想知道是否有一种方法可以测试CSV.generate调用.我很想说我对如何做有一些想法,但事实是我什至不知道从哪里开始.任何想法表示赞赏.

I have the following helper in a rails 3.1 project - I'm just wondering if there's a way to test that CSV.generate call. I'd love to say I have some sort of idea how to do it, but the truth is I don't even know where to start. Any ideas appreciated.

require 'csv'

module Admin::PurchasesHelper
  def csv_purchase_list
    columns = ['course', 'amount', 'first_name', 'last_name', 'contact_phone', 'contact_mobile', 'created_at']
    CSV.generate(:col_sep => ";", :row_sep => "\r\n", :headers => true, :write_headers => true, :return_headers => true) do |csv|
      csv << ["Course", "Amount", "First Name", "Last Name", "Phone", "Mobile", "Created At"]
      Purchase.all.each do |p|
        csv << columns.collect{ |name| p.send(name)}
      end
    end
  end
end

推荐答案

我会这样写:

# helper class to get access to csv_purchase_list
class Foo
  include Admin::PurchasesHelper
end

it "should return Purchases as csv" do
  # create some objects - you have to know its values
  Factory(:purchase)
  Factory(:purchase)

  # you have to prepare file.csv with content from objects created above
  expected_csv = File.read('file.csv')
  generated_csv = Foo.new.csv_purchase_list

  # sometimes it is better to parse generated_csv (ie. when you testing other formats like json or xml
  generated_csv.should == expected_csv
end

这篇关于使用RSpec测试CSV.generate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆