2012-04-20 34 views
5

我正在使用一大套已經存在的黃瓜特徵,並添加了其他測試。對於那些新的測試,我也試圖使用變換來簡化重複任務。在黃瓜範圍內進行變換

如何在不破壞已有測試的情況下添加變換?我已經爲捕獲組添加了上下文,但由於上下文與預先存在的測試來自相同的業務域,因此可以輕鬆地結束匹配。

有沒有辦法只對某些步驟應用轉換?

回答

2

您可以使用標記和Before過濾器在World中設置實例變量。這可用於變換,以便它可以執行特定於標記的變換。例如,如果你只是想變換整數當@hook標籤存在:每個場景創建

Transform /(\d+)/ do |num| 
    if @hook 
    num.to_i 
    else 
    num 
    end 
end 

Before('@hook') do 
    @hook = true 
end 

一個新的世界和過濾器被稱爲前。所以@ hook會針對每個場景進行重置。

+0

有趣的想法,但現在功能文件將不得不意識到轉換,當它真的是關心的步驟定義 – 2012-04-30 13:08:33

+0

@Chris是的,我想我沒有回答你的*真正的問題*關於應用轉換隻是某些腳步。你確實說他們是額外的測試,所以我認爲他們是新的情景。 – graza 2012-04-30 13:16:02

+0

謝謝,這可能是目前最好的! – 2012-05-01 17:01:36