Rspec trace повторяет контекст несколько раз? - PullRequest
2 голосов
/ 21 ноября 2011

В последнее время я замечал ошибку в моем выводе rspec, в частности в полном описании сбойных спецификаций - он всегда удваивал контекст, когда рано заканчивал вывод, но в последнее время он делал больше, чем удваивал, и в ситуациях, когдазапуск не был отменен досрочно.

Например:

  1. В области «учетные записи», когда тип пользователя «admin» В области «учетные записи», когдатип пользователя «admin» на странице «Данные пользователя» В области «учетные записи», когда тип пользователя «admin» В области «учетные записи», когда тип пользователя «admin» на странице «Информация о пользователе» ведет себякак страница с меню учетных записей В области «учетные записи», когда тип пользователя «admin» В области «учетные записи», когда тип пользователя «admin» на странице «Сведения о пользователе» В области «учетные записи», когдатип пользователя - «admin» В области «учетные записи», когда тип пользователя «admin», на странице «Данные пользователя» ведет себя как страница с меню учетных записей, там должна быть ссылка «Home»

Сбой / Ошибка: :: сообщение об ошибке здесь ::

Что может быть причиной и как я могу это остановить?

Дополнительные сведения: Похоже, это происходит чаще всего.с общими примерами групп.ОСОБЕННО общие группы примеров, которые используют другие общие группы примеров.

Вот грубый, урезанный пример кода, который я использую .:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...