私はRuby 2.3.0
を使用してカラバッシュテストを作成しており、モジュールからキュウリメソッドを呼び出すのに問題があります。モジュールからキュウリメソッドを呼び出す
module A
module_function
def visible
wait_for_elements_exist("Some element query")
end
end
そして:
Class B
include A
end
私はB.visible
を呼び出すか、B
でこれを定義します。
def visible
A::visible
end
を、モジュールAにwait_for_elements_exist
を示すB.visible
、私が手NoMethodError
を呼び出す
私は012にしようとしたモジュール内のとモジュール内のinclude Calabash::Cucumber
それはうまくいかなかった。
私のプロジェクトでは他のクラスのすべてのキュウリのメソッドにアクセスできます。私はenv.rb
にキュウリが必要なので、ライブラリがロードされます。モジュールからライブラリ関数にアクセスする方法や、モジュールに適切に物を含める方法を知りたい。
EDIT
私は動作しませんでしたinclude Calabash::Cucumber::WaitHelpers
そしてinclude Calabash::Cucumber::Operations
を試してみました。私はインクルードをextendに置き換えましたが、今はメソッドにアクセスできますが、それは私の問題を解決しません。私は必要なもの
は、私はプラットフォーム間で異なるメソッドを定義し、これらのモジュールで
AndroidModule < Calabash::Android::Operations
IosModule < Calabash::Cucumber::Operations
です。
は、その後、私はスクリーンのための特定の方法を定義する各種画面についてScreenModule
あります、そしてIは起動テストに基づいて、私は、プラットフォームのモジュールのいずれかを含むようにScreenModule
を必要とします。
::Operations
にはScreenModule
からアクセスする必要がありますが、それらの方法は見つかりません。
私は::Operations
moudle
、私はAndroidとiOSのために使用することができ、ページオブジェクトのメソッドのためのモジュールであり、 2つのプラットフォーム間でステップ定義を共有できます。 例えば、私からのステップは次のようになります。そして、 '(/ ^私は/ログイン画面$を参照) login_screen.visible login_screen.do_stuff' そして私...ログインページオブジェクトを作成... を行います'visible'や' do_stuff'のようなメソッド用のモジュールを作成したいので、iOSとAndroidページクラスにモジュールを含めることができます。 モジュールAで 'Calabash :: Cucumber :: Operations'を拡張して操作にアクセスすることで、これを実現しました。 – Krumons