Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何检查RSpec测试中的CSV文件列?_Ruby_Csv_Ruby On Rails 4_Rspec - Fatal编程技术网

Ruby 如何检查RSpec测试中的CSV文件列?

Ruby 如何检查RSpec测试中的CSV文件列?,ruby,csv,ruby-on-rails-4,rspec,Ruby,Csv,Ruby On Rails 4,Rspec,我真的不知道如何检查我在ROR应用程序中创建的CSV文件 require "rails_helper" require "shared_contexts/vcr/s3" require "csv" RSpec.describe ReportRuns::RunService do describe "CSV columns" do include_context "vcr s3 put csv" let(:report_run) { create :report_run,

我真的不知道如何检查我在ROR应用程序中创建的CSV文件

require "rails_helper"
require "shared_contexts/vcr/s3"
require "csv"

RSpec.describe ReportRuns::RunService do
  describe "CSV columns" do
    include_context "vcr s3 put csv"

    let(:report_run) { create :report_run, report_template: report_template, created_by: user.id, mime_type: "csv" }
    #let(:report_template) { create :report_template, template_structure: { module: "trial_members", filters: { trial_members: [trial_members.id] } } }
    let(:report_template) { create :report_template, trial: trial }
    let(:trial) { create :trial }
    let(:user) { create :user }
    let(:user_role) { create :user_role }

    subject { described_class.new(report_run) }

    before do
    end

    it do
      get :index, format: :csv
      p "response jee: #{response.body}"
      p response.headers
      p "report run: #{report_run.inspect}"
      p "templejt: #{report_template.inspect}"
      p "mime type: #{report_run[:mime_type]}"
      #p "trila je: #{trial.inspect}"
      p "users are: #{user.inspect}"
      p "user roles su: #{user_role.inspect}"
      is_expected.to be_truthy
      expect(5).to match(5)
    end
  end
end
使用来解析响应的主体。然后使用CSV对象

csv = CSV.new(response.body)

您还可以检查内容类型标题是否正确,
text/csv

是,但从何处获取此代码中的响应?因为我的response.body不起作用,我只是尝试了一下,但它不起作用,也不使用get方法。@vladanportovic你应该提到,在你的问题中,你在获取response.body时遇到了麻烦<只要RSpec意识到这是一个控制器测试,代码>响应应该可以工作。尝试设置
RSpec.descripe ReportRuns::RunService,type::controller
。更多信息,请参阅。