我有一個場景大綱有多個場景。我希望我的Before鉤子只運行一次,這樣我就可以引導需要針對所有場景運行的ActiveRecord對象。問題是如果我使用黃瓜:在所有場景的鉤子運行只有一次之前
Before do
# my code here
end
這將在每個場景之前執行。無論如何要爲整個大綱運行一次嗎?
我有一個場景大綱有多個場景。我希望我的Before鉤子只運行一次,這樣我就可以引導需要針對所有場景運行的ActiveRecord對象。問題是如果我使用黃瓜:在所有場景的鉤子運行只有一次之前
Before do
# my code here
end
這將在每個場景之前執行。無論如何要爲整個大綱運行一次嗎?
我認爲,如果你只是在功能創建在一個文件中的對象/支持他們將堅持:
ImportantThing.create(:name => "USEFUL THING")
這是因爲之前每情景黃瓜會啓動一個數據庫事務,然後回滾到其之前的狀態,其中應包含您已加載的對象。
我有同樣的問題,我需要爲所有事件記錄測試創建一次訂閱者管理器。如果我只是使用一個前鉤子或一個常規步驟(例如一個給定),管理器將在每個場景之前創建。
我的解決方案最終是在我的第一個場景中使用標記的前鉤子。
Before('@first_logging_scenario') do
# do something useful
end
要關閉我的經理,我用了一個標記機後與我的最後一個場景
After('@last_logging_scenario') do
# do something useful
end