Rspec:如何在场景中访问场景标记的内容?

时间:2011-06-12 02:46:06

标签: ruby-on-rails rspec rspec2 rspec-rails

我有一个类似的rspec场景:

    scenario "some description of the scenario", :js => true, :slow => true, :wip => true do
      sleep 60
      ...

但我想根据情景标记的内容有条件地致电sleep,例如:

    scenario "some description of the scenario", :js => true, :slow => true, :wip => true do
      sleep 60 if tags[:slow] && !tags[:wip]
      ...

我很感激任何帮助。

1 个答案:

答案 0 :(得分:3)

由于rspec没有scenario方法,我猜你正在使用capybarasteak,而且它实际上只是it的别名。在这种情况下,rspec在内部将此代码块称为“示例”,您可以像这样访问元数据:

sleep 60 if example.metadata[:slow]  # sleep if example is tagged with :slow => true

您还可以将元数据放在示例组中,即包含各种示例的describe块。请参阅:http://relishapp.com/rspec/rspec-core/v/2-6/dir/metadata/user-defined-metadata