thi*_*ofm 2 tdd ruby-on-rails testunit minitest rack-test
如何测试Rails中控制器操作的响应是否为文件?(机架测试或水豚)
我应该使用单元测试吗?
场景很简单:我必须测试来自数据库的导出用户是否与动作生成的.csv中包含的用户相同.
blo*_*age 16
您不需要机架测试或Capybara来执行此操作.您只需要默认的测试基础架构.只需检查Content-Type是否为CSV:
test "returns a CSV file" do
get :index, format: :csv
assert_response :success
assert_equal "text/csv", response.content_type
end
Run Code Online (Sandbox Code Playgroud)
如果您想更进一步,可以解析返回的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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2237 次 |
| 最近记录: |