Уровень стека слишком глубокие ошибки, возникающие в rspec после добавления дополнительного примера - PullRequest
0 голосов
/ 02 декабря 2011

Я использую ruby-1.9.3-p0.Мой пакет включает

Using rails (3.1.3)
Using rspec-core (2.7.1) 
Using rspec-expectations (2.7.0) 
Using rspec-mocks (2.7.0) 
Using rspec (2.7.0)
Using rspec-rails (2.7.0)

У меня очень странная проблема, возникающая в моей спецификации.У меня есть около 5 примеров, например так:

describe "Example" do
  context "when adding stuff" do
    it "should do stuff" do
      # ...
    end

    it "..." do
      # ...
    end
  end

  context "when doing other stuff" do
    it "..." do
      # ...
    end

    it "..." do
      # ...
    end

    it "..." do
      # ...
    end
  end
end

Однако, если я добавлю дополнительный пример, в блоке context "when doing other stuff", я получу эту ошибку

  1) Example when adding stuff should do stuff
     Failure/Error: Unable to find matching line from backtrace
     stack level too deep
     # /../../activesupport-3.1.3/lib/active_support/duration.rb:55


  2) Example when adding stuff should do stuff
     Failure/Error: Unable to find matching line from backtrace
     stack level too deep
     # /../../activesupport-3.1.3/lib/active_support/core_ext/time/calculations.rb:266

Что делает этостранно, если я закомментирую все в блоке, как это так

it "should do stuff" do
  # everything commented out
end

это все равно происходит.И даже если я закомментирую новый пример, который я добавил

it "new example within when doing stuff context" do
  # everything commented out
end

, он все равно выдаст ошибку. И затем, если я закомментирую весь код в каждом примере, это все равно произойдет! Только если я полностью удалю первый it "should do stuff" пример, он исчезнет.Кто-нибудь испытывал это?Спасибо.

РЕДАКТИРОВАТЬ: Еще одну вещь, которую я хотел бы добавить.При запуске все спецификации, например, так:

rspec

Все мои примеры проходят и работают без переполнения стека.Однако это происходит только в том случае, если я запускаю спецификацию соло:

rspec spec/models/example_spec.rb

1 Ответ

0 голосов
/ 13 августа 2012

Также обязательно проверьте вашу модель на наличие последних изменений, таких как

after_save :do_something

def do_something
 self.update_attribute(:att,val)
end

ака бесконечные петли

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...