2
如何測試Rails中控制器操作的響應是否爲文件? (機架測試或水豚)如何檢查響應是否爲文件?
我應該使用單元測試來做到這一點嗎?
該方案很簡單:我必須測試從數據庫中導出的用戶是否與操作生成的.csv中包含的相同。
如何測試Rails中控制器操作的響應是否爲文件? (機架測試或水豚)如何檢查響應是否爲文件?
我應該使用單元測試來做到這一點嗎?
該方案很簡單:我必須測試從數據庫中導出的用戶是否與操作生成的.csv中包含的相同。
你不需要機架測試或水豚來做到這一點。默認的測試基礎設施是您所需要的。簡單地檢查內容類型是CSV:
test "returns a CSV file" do
get :index, format: :csv
assert_response :success
assert_equal "text/csv", response.content_type
end
如果你想利用這一步,你可以解析返回CSV,以確保它是有效的,並測試返回的值:
test "returns a valid CSV file and data" do
get :index, format: :csv
assert_response :success
assert_equal "text/csv", response.content_type
csv = CSV.parse response.body # Let raise if invalid CSV
assert csv
assert_equal 6, csv.size
assert_equal "Joe Smith", csv[3][4]
end