2017-04-13 3 views
0

私はキュウリ - ルビーのフレームワークで作業しており、私たちはCapybaraと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

を標準クラスまたはモジュールで試しただけで、未定義のメソッドステップについて同じ問題が発生しています。誰かがplsを試すことができるという提案があれば? – mickael

答えて

0

google groupの「Jonas Maturana Larsen」の称号が付けられています。別の例でも同様の問題が発生しましたが、 'world'をクラスに渡すことで問題が解決しました。

ステップは、キュウリ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  

ステップ定義がを実行されるコンテキストは世界です:)

このお試しください:私はそれがSitePrismページに問題だと思ったが、私

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