如何在rspec2中定义套件。的确,什么是套间?
我想将我的规范分成两个套件,并在运行这两个套件之间重置所有内容(清理测试数据库,重置管理员等)。我想我可以用一个can (:suite)块来做这件事。
更新:我的理解是一个例子是这样的:
it "should be true" do
...
end一个组是这样的:
describe Model do
...
end这一理解似乎可以通过在我的代码中添加一些调试语句来验证。但是如何定义套件呢?只是等级库文件夹中的所有等级库吗?在这种情况下,有没有办法实现我想要做的事情呢?
(我真的很惊讶,我不能通过谷歌搜索或在前面问题的答案中找到这个。)
发布于 2011-07-21 17:37:27
在我看来,在RSpec中没有比套件更好的东西了。我仔细研究了一下,发现了以下几点:
:suite作为作用域。含义:如果
: each,则在每个匹配的示例之前运行该块。如果为:all,则在运行任何匹配的示例之前,每个组运行一次块。如果是:suite,则在运行任何示例组之前运行一次块。
因此,如果您将您的规范划分为示例组,您可以通过使用例如。before(:suite) do ...每个示例组应该执行的操作。
发布于 2011-07-21 19:43:59
您可以使用单独的describe调用,并且可以在调用之前和之后执行以下操作:
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任务,以使用
rspec spec/ -e"Suite 1" # call this task spec:suite1 or something like that我没有完成这部分的rake任务,但是我经常用这个机制定义概念性的套件。
https://stackoverflow.com/questions/6773675
复制相似问题