使用RSpec测试Sinatra应用程序 - 测试的“结构”

时间:2014-02-07 12:57:07

标签: ruby rspec sinatra

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

controllers
helpers
models
views
public

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

我想知道的是如何在spec文件夹中组织这些测试?我应该只有name_of_controller_spec.rb文件,并且两种测试都去那里吗?或者它们应该分开吗?如何?总而言之,我从来没有写过测试,我也不知道如何准确地把它们放在哪里:(任何建议都会受到赞赏!:)

2 个答案:

答案 0 :(得分:1)

您只需制作三个文件夹:controllers(例如,posts_spec.rb),models(包含post_spec.rb,其中测试您在模型)和helpers(让我们说utils_spec.rb)。

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

答案 1 :(得分:0)

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

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

我用Rubocop注意到的一点是将测试方法保持在25行或者它们在那里失败。所以我会说让他们分成小组。

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