Если у меня есть rspec тест, подобный следующему:
context "main context" do
before(:all) do
# code for before :all
puts "my fore :all"
end
describe "Scenario-1" do
context "my context 1" do
it "should blablabla" do
end
it "should blablabla" do
end
end
context "my context 2" do
it "should blablabla" do
end
it "should blablabla" do
end
end
end # end of describe "Scenario-1"
describe "Scenario-2"
context "my context 3" do
it "should blablabla" do
end
it "should blablabla" do
end
end
end #end of "Scenario-2"
end #end of main context
Два вопроса:
1. Это так, что объявление before(:all)
фактически вызывается в каждый субконтекст ?Я думал, что он вызывается только один раз за весь тест, но когда я запускаю свой тест, Я испытал , что код в before(:all)
выполняется в каждом context
,Вот и все, когда запускается каждый context
, почему?
(Как вы заметили, у меня есть puts
как часть моего before(:all)
кода, и Я видел, что это помещает в каждый под-контекст при запуске теста , почему? Isn't before(:all)
должен выполняться только один раз в течение всего теста ??)
2. Когда я запускаю тест, почему порядок выполнения теста равен снизуконтекст к контексту вверх (в то время как внутри каждого контекста порядок «это» вверх-вниз)?Как изменить порядок тестирования на уровне контекста?