【问题标题】:Some Rails unit testing questions (using Shoulda + Factory girl)一些 Rails 单元测试问题(使用 Shoulda + Factory girl)
【发布时间】:2014-08-04 03:21:50
【问题描述】:
  1. 我有几个复杂的对象要存根(我使用的 gem 实例)。我可以在哪里集中这些存根以使它们可用于所有测试?

  2. 如何在没有 rake:test 的情况下以编程方式在测试之间清除数据库?我想通过 textmate 快速运行单个测试,但是这样做会出错,因为它不会在测试之间清除数据库

  3. 测试运行缓慢,因为它必须启动 Rails 实例。如何加快测试速度?尤其是在编写测​​试并希望快速运行更改时

【问题讨论】:

标签: ruby-on-rails unit-testing factory-bot


【解决方案1】:

1) 您可以将它们放在 test_helper.rb 中以使它们可用于所有测试,或者您可以编写自己的包含这些方法的模块,然后将该模块包含在需要这些存根的测试中。

2) 你可以在你的测试设置方法中加入Model.destroy_all(或者.delete_all,如果合适的话会更快),以去除那些你不再感兴趣的模型。

但是,如果您在事务中运行测试(并且您的数据库支持事务),那么您不需要清除任何数据,因为数据的创建和测试将在事务中运行,然后将回滚自动清除数据。

3) 不太确定这一点。我在 Windows 上经常遇到这个问题,但在 *nix 上却没有这么多。您可以研究某种持续测试,但反馈仍然会有延迟。可能值得调查是什么导致 Rails 环境启动如此缓慢 - 这可能是您可以在测试环境中跳过的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    相关资源
    最近更新 更多