перед ловушкой в ​​rspec так же, как и раньше: все?

Мне интересно, совпадает ли before (как показано ниже) с before :all в RSpec. Иногда ни :each, ни :all не указаны, и это сбивает меня с толку относительно того, что на самом деле делает before.

require 'spec_helper'

describe "this is a description" do 
  before do # vs. before :all or before :each
   # do something...
  end
end

Буду признателен, если кто-нибудь объяснит различия, если таковые имеются. Спасибо!


person Jonathan Lin    schedule 28.08.2012    source источник


Ответы (1)


Таким образом, ответ № before эквивалентен before :each, а не before :all.

Тестовый пример.

Обновление. Ух ты, этот вопрос очень популярен. Чтобы уберечь голову от когнитивной перегрузки, я предлагаю вам явно указать :each или :all.

person Jonathan Lin    schedule 28.08.2012
comment
Я хочу добавить, что если вы вкладываете перед контекстами без определенной среды выполнения, например, перед (: каждый), он НЕ будет переопределять верхний уровень перед хуками. Затем вы можете вкладывать хуки и добавлять код в кучу, но будьте осторожны, так как это может вызвать проблемы. - person Alexis Rabago Carvajal; 01.08.2018
comment
Бьюсь об заклад, это особенно популярно, потому что на странице документации rspec до не упоминается значение по умолчанию. relishapp.com/rspec/ rspec-core/v/2-2/docs/hooks/ - person cdmo; 03.03.2020