【发布时间】:2016-04-19 09:06:24
【问题描述】:
我正在编写一个简单的 CanadaPost 价格运输 API,其中价格以表格格式的 PDF 文档给出(参见 https://www.canadapost.ca/tools/pg/prices/SBParcels-e.pdf 的第 3 页)。
数据被提取成csv文件并导入数据库(表prices有列weight、rate_code和date)。模型和控制器非常简单:它们采用 weight、rate_code 和 date 并查询价格表。
我正在尝试创建一套测试来测试该图表中每个价格的存在性和正确性。它必须是通用的和可重用的,因为数据每年都在变化。
我想到了一些想法:
1) 读取用于将数据导入数据库的相同 csv 文件,并创建一个循环所有行和列并测试返回的价格的单个 RSpec 示例。
2) 将 csv 文件转换为 prices 控制器的夹具并测试每个夹具。
我也很难对这些测试进行分类。它们不是单元测试,但它们真的是功能/特性测试吗?它们听起来更像是集成测试,但我不确定 Rails 是否将功能测试与集成测试区分开来。
也许答案很明显,而我没有看到。
【问题讨论】:
-
我不确定是否有正确的方法可以做到这一点,但是模型和控制器的单元测试太难编写了。有太多的嘲弄。夹具文件也不起作用。它们太大而且太慢。我最终将这些测试作为系统集成测试放入 Postman,并且效果很好。
标签: ruby-on-rails csv testing rspec rspec-rails