Блог Половнёва

RSpec: before и after хуки

Почему-то сталкиваюсь с такими тестами:

describe "#foo" do
  before :each do
    # ...
  end
end

:each можно смело опускать: это поведение по умолчанию для before. Лучше так:

describe "#foo" do
  before do
    # ...
  end
end

И несколько интересных фактов о before и after хуках:

  1. before :each и before :all — алиасы для before :example и before :context.

  2. before :each выполняется перед каждым примером, it do...end. after :each — после.

  3. before :all выполняется перед контекстом (context, describe). after :all — после.

  4. В before :suite нельзя задавать переменные экземпляра (instance var, @foo)

  5. Только в before :each можно мокать.

P. S. Ещё больше постов о программировании, тестах и культуре разработки у меня в Телеграме.