6

Cucumberのステップ定義でCapybaraを使用するときにRubyMineのコード補完から助けを得る方法はありますか? カピバラ初心者なので参考サイトをいちいちチェックしなくて済むのは本当に助かります。

現時点で得られる最善の方法はSession.new、次のように明示的に呼び出すことです。

session = Capybara::Session.new(:rack_test, my_app)

このようCtrl+Spaceにすると、 Capybara::Sessionsession. (のみ) のメソッドが表示されるので、少なくとも何とか到達可能であることがわかります。しかし、それは私のステップ定義で実際にCapybaraを使用する方法ではありません。手動で注釈を付けて型推論エンジンを支援することでうまくいくと思いましたが、このDSLマジックはすべて処理するには多すぎると思います。page

基本的に、それはどういうわけか持つことが可能ですか

page.<Ctrl+Space>

公開されているすべてのDSLメソッドが表示されますか? RubyMine APIかな?または、別の方法として、参照ドキュメントを近づける別の方法がありますか ( RubyMineは IDE で外部ドキュメントをまだサポートしていないと思います)。

4

2 に答える 2

0

RubyMine 8.0.3 の時点では、答えはノーです。RubyMine はpage.、少なくとも Cucumber-rails gem を介してカピバラが Cucumber に含まれている場合は、Cucumber のステップ定義に従ってカピバラ メソッドを完了しません。RubyMine issue tracker に機能リクエストが表示されません。誰かが好きなら追加できます。

少なくとも cucumber-rails には、Cucumber の世界に Capybara DSL が含まれているためpage.、Capybara メソッドの前に入力する必要はありません。visitfill_inなどを self メソッドとして呼び出すだけです。page.RubyMine の完了のためだけに、ステップ定義に不要なものは必要ありません。

残念ながら、RubyMine は、何かを入力する前にステップ定義で完了を呼び出したときに完了する名前のリストに Capybara メソッドも含めません。補完を 2 回呼び出したときに補完される名前のリストに Capybara メソッドが含まれています (使用可能なすべてのコードのすべての名前)。正しいプレフィックス。

于 2014-09-13T12:35:31.790 に答える
0

最後に、解決策を見つけました。

私は Cucumber を Capybara と一緒に使用しており、コーディングしたいすべてのマッチャーを .xml に含めました/features/support/spec/spec_helper.rb。Cucumber は、このファイル内のすべてを自動ロードします。きゅうりを使用していない場合は、これらのステートメントを含めることができる他の場所があるに違いありません。

# Needed for RubyMine code completion
include Capybara::Node::DocumentMatchers
include Capybara::Node::Matchers
include Capybara::SessionMatchers
include Capybara::RSpecMatchers
include Capybara::RSpecMatcherProxies

ここに画像の説明を入力

あなたの特定のケースでは: include Capybara::DSL

それで

ここに画像の説明を入力

于 2020-10-28T06:03:58.510 に答える