2017-04-13 90 views
0

我在黃瓜Ruby框架工作,我們使用水豚和SitePrism驅動器。是否可以使用SitePrism頁面內的「步驟」?

我有,我想如果有錯誤發生重試了一堆步驟的情況,所以我把方法與邏輯的SitePrism頁面內覆蓋此如下:

steps %Q{ 
When I click on the back button 
And I enter my reference number 
Then I am able to complete the action successfully 
} 

的問題我發現的是,達到這部分代碼時,執行失敗:

undefined method `steps' for #<MySitePrismPage:0x000000063be5b0 @loaded=false> (NoMethodError) 

,如果有一種方式,我用SitePrism頁中的步驟的任何想法?

謝謝!

+0

我以爲是SitePrism頁面的問題,但我我剛剛嘗試過一個標準的類,甚至是一個模塊,我一直在關注'未定義的方法步驟'。如果有人有建議我可以試用嗎? – mickael

回答

0

感謝「喬納斯馬圖拉納拉爾森在google group。一個不同的例子也有類似的問題,但是將「世界」傳遞給這個類也爲我解決了這個問題。

步驟在Cucumbers RbWorld模塊中定義。

您需要從創建 TestRubyCallStep類的位置傳遞世界實例。

在你的情況,你可能真的想使一個模塊,而不是 類,如果你只需要一個地方來保存共享的方法。

class TestRubyCallStep 
    include Calabash::Android::Operations 

    def initialize(world) 
     @world = world 
    end 

    def callMethod 
     @world.step %Q{my customized steps in custom_step.rb} 
    end 
end  

其中步驟定義執行的背景是世界:)

試試這個:

Then /^I call a step from Ruby class "([^\"]*)"$/ do |world| 
    testObj = TestRubyCallStep.new(self) 
    testObj.callMethod 
end 
相關問題