下载 CSV 文件并检查 RSpec 测试中的列
download CSV file and check columns in the RSpec test
我想确保我的 CSV 下载包含正确的列。当我使用 RSpec 测试 CSV 下载时,我无法访问文件内容。如何访问 CSV 文件的内容?
describe TrackingsController do
it 'returns a successful 200 response for csv format' do
signin_user = create(:admin_user)
sign_in(signin_user)
get :index, format: :csv
expect(response).to be_successful
expect(response.headers['Content-Type']).to eq('text/csv; charset=utf-8')
expect(response.request.fullpath).to eq('/api/v1/trackings.csv')
end
end
上面的 RSpec 测试通过了,但是我如何打开 CSV 文件并检查列?
我正在尝试查看 response.body
但它给了我一个空字符串
我添加了 render_views
它在控制器规范中呈现视图。如果您不放置 render_views,视图将不会呈现,这意味着控制器被调用,但在它之后 returns 视图不会呈现。控制器测试将 运行 更快,因为它们不必渲染视图,但您可能会错过视图中的错误。之后我使用 CSV.parse(response.body)
解析我们的响应,然后我可以检查 CSV 内容文件。
我想确保我的 CSV 下载包含正确的列。当我使用 RSpec 测试 CSV 下载时,我无法访问文件内容。如何访问 CSV 文件的内容?
describe TrackingsController do
it 'returns a successful 200 response for csv format' do
signin_user = create(:admin_user)
sign_in(signin_user)
get :index, format: :csv
expect(response).to be_successful
expect(response.headers['Content-Type']).to eq('text/csv; charset=utf-8')
expect(response.request.fullpath).to eq('/api/v1/trackings.csv')
end
end
上面的 RSpec 测试通过了,但是我如何打开 CSV 文件并检查列?
我正在尝试查看 response.body
但它给了我一个空字符串
我添加了 render_views
它在控制器规范中呈现视图。如果您不放置 render_views,视图将不会呈现,这意味着控制器被调用,但在它之后 returns 视图不会呈现。控制器测试将 运行 更快,因为它们不必渲染视图,但您可能会错过视图中的错误。之后我使用 CSV.parse(response.body)
解析我们的响应,然后我可以检查 CSV 内容文件。