問題タブ [rspec-mocks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rspec spec_helper 設定の問題: 未定義のメソッド `syntax=' for #(NoMethodError)
rspec テストを使用して、関数がコントローラー メソッドで呼び出されたことを確認しようとしています。これを行うために、メッセージの期待値を設定するためのrelishapp のドキュメントに従っています。
ただし、このスニペットをに追加するのに問題がありspec_helper.rb
ます:
問題が発生することconfig.mock_with :rspec
なく既にファイルに含まれていましたが、上記のスニペットを追加して rspec を実行すると、次のエラーが表示されます。
この問題を解決するにはどうすればよいですか?
ruby-on-rails - Bundler は互換性のある gem "rspec-mocks" のバージョンを見つけられませんでした - Bundler::VersionConflict
ホスティング サービスにデプロイしようとしています。しかし、自分のドメインにアクセスすると、Phusion Passengers のエラー メッセージが表示されます。
私もです:
それから私は得る:
だから私はもう一度やります:
そして最後に私はこれを得る:
Bundler は gem "rspec-mocks" の互換バージョンを見つけられませんでした: Gemfile 内: guard-rspec (= 2.5.0) ruby は rspec-mocks (~> 2.14.0) ruby に依存します
(バンドラー::VersionConflict)
それらの 1 つを Gemfile から削除する必要がありますか?
ruby-on-rails - RSpec::Mocks::ExampleMethods の未定義メソッド instance_double
私はこのようなテストケースを持っています:
RSpec を実行すると、次のエラーが表示されます。
http://rubydoc.info/github/rspec/rspec-mocks/RSpec/Mocks/ExampleMethodsによると、このメソッドは存在します。だから私はそれに直接アクセスしようとしました:
そして、非常に驚くべきエラーが発生しました。
これは、上でリンクしたドキュメントに反しています。
私は何が欠けていますか?
ruby-on-rails - Rspecモック、副作用としてメソッドをスタブすることも「期待」できますか?
継承されたアプリのテストを理解しようとしていますが、助けが必要です。
このような仕様グループがたくさんあります (仕様を表示):
...job_post
コントローラーで定義されたヘルパーメソッドです。(はい、@instance 変数を使用できた可能性があります。私はそれをリファクタリング中です)。
さて、私の意見では、ブロックexpect
内を使用するのは間違っています。before
ちょっと忘れてみましょう。
通常、上記のテストは緑色です。
ただし、行を削除するexpect
と、テストは失敗します。この場合expect
、ビューでメソッドをスタブ化しているようです。実際、に置き換えるexpect
とallow
まったく同じ効果があるようです。
通常、サーバーで実行すると、ビューが呼び出さjob_posts
れ、メッセージがコントローラーのヘルパー メソッドに送られます。これは、予想される動作です。
ただし、ここではexpect
期待値を設定すると同時に、view
固定の戻り値でメソッドをスタブ化しています。ビュー テンプレートがそのメソッドを呼び出すため、テストはパスします。
の予想外の「スタブ」副作用について、 rspec-mocks readmeexpect
でこれを見つけました。
(...) find が呼び出されない場合に例が失敗するように、メッセージの期待値を設定することもできます。
RSpecは、スタブまたはモックしているメソッドを独自の test-double のようなメソッドに置き換えます。例の最後で、RSpec はメッセージの期待値を検証し、元のメソッドを復元します。
メソッドのこの特定の使用に関する経験はありますか?
ruby - RSpec.configure が機能せず、rspec-mocks#setup が原因でサンプルが失敗する
私は 3 か月前に rspec を開始し、sinatra プロジェクト (ruby 2.1.1 を使用) で作業しています ...
私のスペックにはエラーはありません(他のコンピューターで正常に実行されています)が、自分で実行しているときに、すべての例でこれを取得しました...
==========================
このリンク ( https://github.com/rspec/rspec-core/issues/754 ) を使用しましたが、うまくいきません (私のアプリは projects という名前のフォルダーにあります) ...
ruby 2.0.0 も試してみましたが、同じ問題です...
私はそれについての役に立つ文章を読んで喜んでいます...ありがとう
ruby-on-rails - rspec-mocks の double は、1 つの例でのみ持続するように設計されています
サンプル間で rspec-mocks の double を共有する方法について質問があります。rspec-mocks を使用して新しい Rails アプリを作成してい3.1.3
ます。私は古い (< 2.14) を使用することに慣れており、現在の rspec の使用法について知識を更新しようとしています。
私はモデルメソッドを持っています:
そして、ここに仕様があります:
単一のテストを単独で実行すると問題describe ".from_strava"
ありませんが、ブロック全体を実行すると、メッセージで失敗します
言いたいことはわかるが、確かにこれはdouble
2 つの例で使用されている a の適切な使用法です。結局のところ、client
double は例にとって重要ではありません。WebMock を使用できると思いますが、それは非常に低レベルのようで、実際に記述されたコードにうまく変換されません。結局のところ、例ごとに 1 つのことだけを主張する必要があります。
client
double を呼び出しに置き換えることを考えていました
receive_message_chain
しかし、ドキュメンテーションがコードの匂いであるべきだと述べていることを考えると、それも正しいアプローチではないようです 。
したがってreceive_message_chain
、 , shared client
double を使用せず、標準の DRY 原則に従うべきではない場合、どうすればこれを修正できますか?
これについてのフィードバックをお待ちしています。
ありがとう、デイブ
rspec - RSpec-mock を使用して JRuby で Java インターフェイスをモックする
JRuby で JDBC の単純なラッパーを作成しています。基本的にDBW
、接続文字列とオプションの初期化ブロックを受け取るラッパー クラスが必要です。
ただし、私のテストでは、Driver
に登録するテスト ダブルを使用したいDriverManager
ので、RSpec テストで次のことを行いました。
テストを実行すると、次のエラーが表示されます。
テスト コードに示されているように、acceptsURL メソッドは によって呼び出されませんDriverManager
。私が見逃しているアイデアはありますか?