2015-03-31 54 views
1

我一直在使用RSpec 3幾天,並且我意識到我沒有完全理解提供的鉤子之前/之後。RSpec之前/之後的鉤子之間的混淆

我的困惑是在2個區 -

  1. 可用的各種參數掛鉤 - (?我錯過任何):suite:context:example:all:each。前三個看起來是新的,因爲我只見過最後兩個。最後兩個現在是否被棄用並由其他人取代?
    • 我每個context塊和個體例如前猜測before(:context)before(:example)運行一次 -
    • 上述每個蓋的範圍。
    • 是否before(:suite)在給出_spec文件的所有示例之前運行一次?
    • 每個before(:xxx)塊是否僅適用於其自己的嵌套級別和以下的上下文和示例?

謝謝!

回答

1

每個documentation,:context:example別名爲rspec3中的:all:each

注意:示例和:上下文範圍也分別可用:each和 :all。使用任何你喜歡的。

before :suite範圍首先執行,然後:context:example作用域:

before :suite 
before :context 
before :example 
after :example 
after :context 
after :suite 

除此之外,我建議閱讀文檔,其中包括的具體測試方案的工作實施例。