【问题标题】:Writing a test suite for a Spree app为 Spree 应用程序编写测试套件
【发布时间】:2016-06-08 19:44:58
【问题描述】:

我想使用 FactoryGirl 和 RSpec 为我的 Spree 应用程序构建一个测试套件。我应该从头开始编写测试,还是可以利用现有资源避免重复代码?

spree/core/spec/models/spree 中有很多 _spec.rb 文件。如果可以运行 rspec spec 并运行核心狂欢测试套件以及我编写的任何测试,那就太好了。

Spree documentation 建议运行 bundle exec rake test_app 以“在您的规范目录中构建适当的测试应用程序”。当我运行该命令时,我收到以下错误消息:

rake aborted! Don't know how to build task 'ecommerce' (see --tasks)

Spree 使用以下行安装在 config/routes.db 中:mount Spree::Core::Engine, at: '/'

我很想拥有“适当的文件”,这样我就不必编写许多已经编写的测试,但我很难过。感谢您提供任何提示。

【问题讨论】:

    标签: ruby-on-rails testing rspec spree


    【解决方案1】:

    来自 Spree 文档:

    Spree 由几个不同的 gem 组成(有关详细信息,请参阅源代码指南。)每个 gem 都有自己的测试套件,可以在 spec 目录中找到。由于这些 gem 也是 Rails 引擎,因此不能真正完全孤立地测试它们——它们需要在 Rails 应用程序的上下文中进行测试。

    您可以使用 Rake 任务轻松构建这样的应用程序 为此目的而设计,在您想要的组件内运行它 测试:

    $ bundle exec rake test_app

    换句话说,如果您想测试 Spree 本身,请为该特定目的构建一个新的 Rails 应用程序。

    我怀疑这真的是你想要做的。如果您为自己的应用程序编写测试,即使它使用 Spree,您也不需要测试 Spree 本身,只需测试您编写的代码。据推测,Spree 的作者在将每个新版本发布到野外之前都会运行这些测试。

    【讨论】:

    • 谢谢@zetetic!!这是有道理的。我不想测试 Spree 本身。这就是我想编写测试套件的原因:如果我编写诸如附加方法或模型之类的代码,我想确保所有核心 Spree 功能仍然有效。我是测试新手,所以如果您能确认这是一个合理的问题,或者解释一下,我将不胜感激。
    • 你应该假设库/扩展/插件/等。您使用的已经过测试。就 Spree 而言,他们实际上已经加倍努力并展示了如何运行测试,这是一个好兆头。编写测试来测试编写的代码。在可能的情况下,使用可以在具有很少依赖项的小单元中进行测试的代码。此外,编写驱动整个堆栈的单独的高级“功能”测试。关注外部库中的问题是明智的,但试图通过测试发现这些问题是没有意义的。你会从哪里开始?你会在哪里停下来?
    • 知道了@zetetic。有了这个,我将自信地前进,暂时不用太担心测试,一旦我对 Spree 感到更舒服,就会重新审视这些问题和你的答案。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    相关资源
    最近更新 更多