首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在rspec2中定义套件

如何在rspec2中定义套件
EN

Stack Overflow用户
提问于 2011-07-21 17:05:20
回答 2查看 676关注 0票数 2

如何在rspec2中定义套件。的确,什么是套间?

我想将我的规范分成两个套件,并在运行这两个套件之间重置所有内容(清理测试数据库,重置管理员等)。我想我可以用一个can (:suite)块来做这件事。

更新:我的理解是一个例子是这样的:

代码语言:javascript
复制
 it "should be true" do
...
end

一个组是这样的:

代码语言:javascript
复制
 describe Model do
...
end

这一理解似乎可以通过在我的代码中添加一些调试语句来验证。但是如何定义套件呢?只是等级库文件夹中的所有等级库吗?在这种情况下,有没有办法实现我想要做的事情呢?

(我真的很惊讶,我不能通过谷歌搜索或在前面问题的答案中找到这个。)

EN

回答 2

Stack Overflow用户

发布于 2011-07-21 17:37:27

在我看来,在RSpec中没有比套件更好的东西了。我仔细研究了一下,发现了以下几点:

  • 有一个叫做"My top 7 RSpec best practices"的帖子,你可以在第6节“创建几个测试套件来加速你的工作流程”中找到。这在David Chelimsky的"The RSpec Book“一书中解释了如何在Rakefile中将您的规范划分为"suites”,并将它们称为您试图访问的individually.
  • What。在第16.5章中,他解释了全局钩子(之前,之后,周围,...)其中可以使用关键字:suite作为作用域。含义:

如果

: each,则在每个匹配的示例之前运行该块。如果为:all,则在运行任何匹配的示例之前,每个组运行一次块。如果是:suite,则在运行任何示例组之前运行一次块。

因此,如果您将您的规范划分为示例组,您可以通过使用例如。before(:suite) do ...每个示例组应该执行的操作。

票数 1
EN

Stack Overflow用户

发布于 2011-07-21 19:43:59

您可以使用单独的describe调用,并且可以在调用之前和之后执行以下操作:

代码语言:javascript
复制
describe "some cool text for suite 1" do
  before do
    ...
  end

  it "some test in suite 1" do
    ...
  end

  ...more tests...

  after do
    ...
  end
end

describe "some cool text for suite 2" do
  ...same shape as above...
end

这将允许您为您的一组相关测试分离“设置”和“拆卸”。然后,您可以添加rake任务,以使用

代码语言:javascript
复制
rspec spec/ -e"Suite 1"  # call this task spec:suite1 or something like that

我没有完成这部分的rake任务,但是我经常用这个机制定义概念性的套件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6773675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档