【发布时间】:2014-12-27 23:28:24
【问题描述】:
我正在为一个小型组织开发一个用作目录/电话簿应用程序的 Rails 应用程序。
背景
该应用程序基本上整合了来自多个内部 Web API 的信息,并将它们存储在本地 SQLite3 数据库中。该应用程序基本上是一个美化的前端,可以直接从该数据库中读取数据。
每隔 X 小时,安排一个 rake 任务,将信息从 Web API 提取到数据库中。在第一次运行时,数据库显然是空白的,但在随后的运行中,它会更新现有数据并在必要时创建任何新记录。查询 api 并插入数据库的所有逻辑都在lib/update.rb
问题
我应该如何为上述工作流程设置测试?我知道 Rails 有很好的support for fixtures。但在这种情况下,我不想将预配置的数据设置为夹具。我想模拟 Web API 调用并通过lib/update.rb 运行它,以确保它以正确的逻辑正确插入。我还想做几次运行来模拟第一次运行和后续运行并断言正确的行为。我应该将所有内容都放在/test/unit/update_test.rb 中作为单元测试吗?
另外,我如何管理单元测试和模型测试之间的数据?我肯定会为模型使用固定装置,所以我应该在运行单元测试后清除数据库吗?
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby unit-testing testing model