Ruby 如何检查RSpec测试中的CSV文件列?
我真的不知道如何检查我在ROR应用程序中创建的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,
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
。更多信息,请参阅。