Четырехфазный тест - это тестовый шаблон, обычно используемый для юнит-тестов.Это общая форма:
test do
setup
exercise
verify
teardown
end
before
является частью фазы setup
, когда разработчик создает сценарий и поддерживает данные.
expect
является частью фазы verify
, которая происходит внутри блока it
.
Обычный шаблон - использовать allow
в before
блоках и использовать *Например, блоки 1017 * in it
. Блоки
RSpec.describe User do
describe '#forgot_password' do
before { allow(EmailService).to receive(:send) }
subject { FactoryBot.create(:user).forgot_password }
it 'sends an email to user to start the password resetting process' do
subject
expect(EmailService).to have_received(:send).with(...)
end
end
end
before
также можно добавлять в другие уровни приложения (spec_helper.rb
, общие примеры), и никто не хочет полагаться направильный порядок блоков перед тем, чтобы тест был успешным.