0

我的目标是在axlsx-rails gem 生成的文件上运行规范,并使用我在此处找到的自定义 rspec 匹配器。

在我的规范示例中,我有:

describe Statistic::CompanyTableSetsController do
  login_user # this just for Devise Auth
  it "generates a proper excel sheet" do
    ...
    get "show", format: :xlsx, id: id
    response.content_type.to_s.should eq Mime::Type.lookup_by_extension(:xlsx).to_s
  end
end

但是当我运行测试时,我得到:

Failure/Error: response.content_type.to_s.should eq Mime::Type.lookup_by_extension(:xlsx).to_s

   expected: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        got: "text/html"

当然,我无法在其他规范示例中获得工作表......

我想我在这里错过了一些东西,因为在我的浏览器中,Excel 工作表是正常生成的。

感谢您的帮助。

4

1 回答 1

0

如果您的请求以 xlsx 格式通过,请检查您的测试日志。您的测试应该可以正常工作。

是否get附加format作为查询字符串参数?也许你需要:

get "/company_table_sets/#{id}.xlsx"

您还应该能够使用:

response.content_type.to_s.should eq Mime::XLSX.to_s
于 2014-10-08T17:48:35.820 回答