The before and after hook documentation on Relish только показывает, что before(:suite)
называется до before(:all)
.В RSpec, какая разница между (: suite) и before (: all)?
Когда следует использовать один над другим?
The before and after hook documentation on Relish только показывает, что before(:suite)
называется до before(:all)
.В RSpec, какая разница между (: suite) и before (: all)?
Когда следует использовать один над другим?
Когда раньше (: все) определяется в блоке RSpec.configure она называется перед каждым верхнего уровня, например, группы, в то время как до (: люкс) кодовый блок вызывается только один раз.
Вот пример:
RSpec.configure do |config|
config.before(:all) {puts "Before :all"}
config.after(:all) {puts "After :all"}
config.before(:suite) {puts "Before :suite"}
config.after(:suite) {puts "After :suite"}
end
describe "spec1" do
example "spec1" do
puts "spec1"
end
end
describe "spec2" do
example "spec2" do
puts "spec2"
end
end
Выход:
Before :suite
Before :all
spec1
After :all
Before :all
spec2
After :all
After :suite
Вы также можете использовать до (: suite), чтобы запустить блок кода до того, как будут запущены группы примеров . Это должно быть объявлено в RSpec.configure
http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/Hooks
мой вопрос: «Если бы я загрузить некоторые семенные данные, как админ пользователя с помощью' перед тем suite' обыкновению, что данные будут очищены после примера бег?" – illusionist
Нет, они останутся, вам придется иметь дело с ними вручную. Только до (: example) внутри транзакции. – Foton
: suite и: context (=: все) находятся вне транзакции. Независимо от того, насколько глубоко вложены контексты. – Foton