Rspec跟踪多次重复上下文?

时间:2011-11-21 18:29:03

标签: ruby rspec

我最近注意到我的rspec输出中的一个错误,特别是在失败规范的完整描述中 - 当它提前结束输出时它总是加倍上下文,但是最近它已经做了两倍以上而且在跑步没有及早取消。

举个例子:

  
      
  1. 在“帐户”区域中,当用户类型为“admin”时,在“帐户”区域中,当“用户详细信息”上的用户类型为“admin”时   页面在“帐户”区域中,当用户类型为“admin”时   “用户详细信息”中用户类型为“admin”时的“帐户”区域   页面的行为类似于带有帐户菜单的页面在“帐户”区域中   当用户类型为'admin'时,在'accounts'区域中的用户   类型为“管理员”在“用户详细信息”页面上的“帐户”区域时   用户类型为“admin”在用户类型为“accounts”区域时   “用户详细信息”页面上的“管理员”行为类似于带有的页面   帐户菜单应该有一个名为“首页”的链接
  2.         

    失败/错误:: ::错误消息::

导致这种情况的原因是什么?如何阻止它?

进一步详情: 它似乎最常出现在共享示例组中。 ESPECIALLY共享使用其他共享示例组的示例组。

以下是我正在使用的代码类型的粗略,精简示例。:

shared_examples "a page with a standard page header" do
 before(:each){ @header=find(:xpath,"//*[@id='page_header']") }
 it_behaves_like "a header with a user control menu"
 context "the standard menu" do
   test "should exist"
 end
end

shared_examples "a page with an administrative header" do
 before(:each){ @header=find(:xpath,"//*[@id='page_header']") }
 it_behaves_like "a header with a user control menu"
 context "the admin menu" do
  test "should exist"
 end
end

shared_examples "a header with a user control menu" do
 context "the user control menu" do
  test "should exist"
 end
end

users_type.each do |user|
 describe "/index" do
  before(:each){ @user=set_up_user(user);login_as(@user); visit(page)}
  context "when the user is a #{user.type}" do
   if(['general','mod'].includes?(@user.type))
    test "some things should be true"
    it_behaves_like "a page with a standard page header"
   elsif('admin'==@user.type)
    test "some other things should be true"
    it_behaves_like "a page with an administrative header"
   else
    it_behaves_like "access denied"
   end
  end
 end
end 

0 个答案:

没有答案