2017-02-15 9 views
0

私は' rspec 'という宝石を使用して期待値を確認している、キュウリのruby siteprismプロジェクトを手に入れました。これはenv.rbに含まれており、ステップ定義で正常に使用されています。NoMethodError:SitePrismクラス内で使用しようとすると、未定義のメソッド `expect 'が返される

私は現在、SitePrismクラスでいくつかのアサーションを作成しようとしていましたが、エラーが発生しています。それらのexpect()メソッドをどのように使用できるか知っていますか?私はSitePrismクラスを定義している.RBファイルにrequire 'rspec'プラスinclude Rspecてみましたが、私はまだ同じエラーを得た :

expect(local_value).to eq(@previous_value) 
=> Error: NoMethodError: undefined method `expect' for #<xxx_Object @loaded=false> 

ありがとうございました!

+0

になり、私はクラスでRSpecの::マッチャ 'が含まれており、それは' expect'エラーメッセージを渡すように見える '含まれています。しかし、私は別の関連するものを得た、このエラーを修正するための提案、または 'expect'を別の方法で含めることはできますか? NoMethodError:#のための未定義のメソッド 'map ' 意味はありますか? – mickael

答えて

1

あなたのページオブジェクトクラスのinclude RSpec::Matchersを見つけたら(あなたのコメントから)、expectとRSpecsのデフォルトのマッチャーを得ることができます。これらのマッチャーの1つはallと呼ばれ、以前はオブジェクトに含まれていたCapybara :: DSL allメソッドをシャドーし、表示されているエラーを生成します。これを解決する方法は、カピバラのバージョンallをcurrent_sessionオブジェクト(page)またはエイリアス 'find_all'で呼び出すことです。だから、all(...).map(...)

page.all(...).map(...) # Same as Capybara.current_session.all(...)... 

または

find_all(...).map(...) # or page.find_all ... 
+0

これは、SitePrismについて私が助けた他の質問に関連しています。 http://stackoverflow.com/questions/42236583/is-it-possible-to-use-siteprism-variables-to-define-new-variables-when-defining/42237203#42237203 私はちょうどsiteprismメソッドを呼び出していた私自身カピバラに電話することなく。この問題を回避するためにこれを別の方法で実行できるかどうか知っていますか? – mickael

+0

@mickael 'all'はsite_prismメソッドではなく、site_prismがページオブジェクトクラスにインクルードするCapybaraメソッドです。あなたのコードが 'all'を呼び出すのではなく、site_prismのどこかにあると言っているなら、site_prismのmasterブランチで実行する必要があります。それを修正する昨年の修正された統合された終わりがあった - https://github.com/natritmeyer/site_prism/pull/162 –

+0

私は参照してください、はい、それはセクションとして作業するときにそれを呼び出すsite_prismそうです。しかし、もう一つの基本的な疑問。私は宝石バージョン2.9をインストールして、rubygems.orgをチェックしています。それは最新のようです。公式にリリースされていない場合、バージョンをmasterブランチにアップグレードする方法についてのリンクがありますか? (私が推測するように、いくつかのファイルをローカルで上書きすることができますが、フレームワークはチームの他の人によっても使用されます)。 – mickael

関連する問題