問題タブ [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.

0 投票する
1 に答える
443 参照

ruby-on-rails - Rspec spec_helper 設定の問題: 未定義のメソッド `syntax=' for #(NoMethodError)

rspec テストを使用して、関数がコントローラー メソッドで呼び出されたことを確認しようとしています。これを行うために、メッセージの期待値を設定するためのrelishapp のドキュメントに従っています。

ただし、このスニペットをに追加するのに問題がありspec_helper.rbます:

問題が発生することconfig.mock_with :rspecなく既にファイルに含まれていましたが、上記のスニペットを追加して rspec を実行すると、次のエラーが表示されます。

この問題を解決するにはどうすればよいですか?

0 投票する
2 に答える
2833 参照

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 から削除する必要がありますか?

0 投票する
1 に答える
2665 参照

ruby-on-rails - RSpec::Mocks::ExampleMethods の未定義メソッド instance_double

私はこのようなテストケースを持っています:

RSpec を実行すると、次のエラーが表示されます。

http://rubydoc.info/github/rspec/rspec-mocks/RSpec/Mocks/ExampleMethodsによると、このメソッドは存在します。だから私はそれに直接アクセスしようとしました:

そして、非常に驚​​くべきエラーが発生しました。

これは、上でリンクしたドキュメントに反しています。

私は何が欠けていますか?

0 投票する
3 に答える
9850 参照

ruby-on-rails - Rspecモック、副作用としてメソッドをスタブすることも「期待」できますか?

継承されたアプリのテストを理解しようとしていますが、助けが必要です。

このような仕様グループがたくさんあります (仕様を表示):

...job_postコントローラーで定義されたヘルパーメソッドです。(はい、@instance 変数を使用できた可能性があります。私はそれをリファクタリング中です)。

さて、私の意見では、ブロックexpect内を使用するのは間違っています。beforeちょっと忘れてみましょう。

通常、上記のテストは緑色です。
ただし、行を削除するexpectと、テストは失敗します。この場合expect、ビューでメソッドをスタブ化しているようです。実際、に置き換えるexpectallowまったく同じ効果があるようです。

通常、サーバーで実行すると、ビューが呼び出さjob_postsれ、メッセージがコントローラーのヘルパー メソッドに送られます。これは、予想される動作です。

ただし、ここではexpect期待値を設定すると同時に、view固定の戻り値でメソッドをスタブ化しています。ビュー テンプレートそのメソッドを呼び出すため、テストはパスします。

の予想外の「スタブ」副作用について、 rspec-mocks readmeexpectでこれを見つけました。

(...) find が呼び出されない場合に例が失敗するように、メッセージの期待値を設定することもできます。

RSpecは、スタブまたはモックしているメソッドを独自の test-double のようなメソッドに置き換えます。例の最後で、RSpec はメッセージの期待値を検証し、元のメソッドを復元します。

メソッドのこの特定の使用に関する経験はありますか?

0 投票する
1 に答える
993 参照

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 も試してみましたが、同じ問題です...

私はそれについての役に立つ文章を読んで喜んでいます...ありがとう

0 投票する
4 に答える
8240 参照

ruby-on-rails - rspec-mocks の double は、1 つの例でのみ持続するように設計されています

サンプル間で rspec-mocks の double を共有する方法について質問があります。rspec-mocks を使用して新しい Rails アプリを作成してい3.1.3ます。私は古い (< 2.14) を使用することに慣れており、現在の rspec の使用法について知識を更新しようとしています。

私はモデルメソッドを持っています:

そして、ここに仕様があります:

単一のテストを単独で実行すると問題describe ".from_strava"ありませんが、ブロック全体を実行すると、メッセージで失敗します

言いたいことはわかるが、確かにこれはdouble2 つの例で使用されている a の適切な使用法です。結局のところ、clientdouble は例にとって重要ではありません。WebMock を使用できると思いますが、それは非常に低レベルのようで、実際に記述されたコードにうまく変換されません。結局のところ、例ごとに 1 つのことだけを主張する必要があります。

clientdouble を呼び出しに置き換えることを考えていました

receive_message_chainしかし、ドキュメンテーションがコードの匂いであるべきだと述べていることを考えると、それも正しいアプローチではないようです 。

したがってreceive_message_chain、 , shared clientdouble を使用せず、標準の DRY 原則に従うべきではない場合、どうすればこれを修正できますか?

これについてのフィードバックをお待ちしています。

ありがとう、デイブ

0 投票する
1 に答える
431 参照

rspec - RSpec-mock を使用して JRuby で Java インターフェイスをモックする

JRuby で JDBC の単純なラッパーを作成しています。基本的にDBW、接続文字列とオプションの初期化ブロックを受け取るラッパー クラスが必要です。

ただし、私のテストでは、Driverに登録するテスト ダブルを使用したいDriverManagerので、RSpec テストで次のことを行いました。

テストを実行すると、次のエラーが表示されます。

テスト コードに示されているように、acceptsURL メソッドは によって呼び出されませんDriverManager。私が見逃しているアイデアはありますか?