【问题标题】:Test a Sinatra app with RSpec - "structure" of tests使用 RSpec 测试 Sinatra 应用程序 - 测试的“结构”
【发布时间】:2014-02-07 12:57:07
【问题描述】:

我有一个具有以下结构的 Sinatra 应用程序:

controllers
helpers
models
views
public

我将使用 RSpec 来测试它。对我来说,有两种测试变体 - 使用 Rack::Test::Methods 测试 - 检查响应、正文内容等,第二个 - 测试“核心”逻辑 - 例如,如果方法"find_most_expensive" 确实返回最高价格的项目,以检查是否真的创建了新产品以及诸如此类的事情。

我想知道的是如何在 spec 文件夹中组织这些测试?我应该只有 name_of_controller_spec.rb 文件并且两种测试都在那里吗?还是应该分开?如何?总而言之,我从未编写过测试,我不知道如何准确以及将它们放在哪里:( 任何形式的建议都将不胜感激!:)

【问题讨论】:

    标签: ruby rspec sinatra


    【解决方案1】:

    您可以只创建三个文件夹:controllers(例如,posts_spec.rb)、models(包含post_spec.rb,用于测试您在模型中实现的方法)和helpers(让我们说utils_spec.rb)。

    查看Testing Sinatra with Rack::Test 和 GitHub 上的一些存储库,以更好地了解如何组织代码。

    【讨论】:

      【解决方案2】:

      https://pragprog.com/book/7web/seven-web-frameworks-in-seven-weeks

      源代码是免费的,其中有一章是关于 Sinatra 测试的。 我知道,我只是在更新期望而不是应该弃用警告时运行它们。 只有他们使用 shell 脚本进行测试,但您可能已经熟悉要使用的内容。关键是注意文件夹的名称不同,而不是测试?也许可以为你工作。我喜欢第一次发布的答案。这些可能都相关。

      我在使用 Rubocop 时注意到的一点是将您的测试方法保持在 25 行以内,否则它们就会失败。所以我想说让他们分成小组。

      Ruby koans 有你也可以查看的测试。

      【讨论】:

        猜你喜欢
        • 2012-06-28
        • 2015-09-05
        • 1970-01-01
        • 2017-06-19
        • 1970-01-01
        • 2011-05-23
        • 2018-02-21
        • 1970-01-01
        • 2012-01-20
        相关资源
        最近更新 更多