問題タブ [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 に答える
530 参照

ruby-on-rails-4 - RSpec::Mocks::Mock:Class の未定義メソッド `i18n_scope'

最近、Rails 4 にアップグレードしました。RSpec テストを実行すると、エラーが発生しました。

これが私の仕様です:

3行目でエラーが発生<NoMethodError: undefined method 'i18n_scope' for RSpec::Mocks::Mock:Class>しました。

API ドキュメントによると、'i18n_scope' は Rails 4 から削除されました。

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

ruby-on-rails - rspec モック 3.3 を使用してメソッドのレスキュー ブロックをテストするにはどうすればよいですか

このテストに合格するのを手伝ってください:

以下は rspec コードの例です。

これらのテストを含むフィドルも作成したので、合格させることができます。メソッドのレスキュー ブロックのテストを手伝ってください!


バックグラウンド:

私の元の質問は次のようなものでした:

次のような方法があります。

resource.errors.add(:base, e.errors)そして、実際にリソースにエラーを追加することをテストしたいと思います。より一般的には、メソッドでレスキュー ブロックをテストしたいと考えています。

だから私は次のようなコードを書きたいのですが、

もちろん、これはレスキュー ブロックで再レイズしているため、エラーが発生します。

古い を使用するいくつかの回答を見てきましたsomething.stub(:method_name).and_raise(SomeException)が、rspec はこの構文が非推奨であると不平を言っています。Rspec Mocks 3.3と構文を使いたいのallowですが、なかなかうまくいきません。

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

ruby-on-rails - Rspec - expect_any_instance_of と受信カウントを組み合わせる

クラスのインスタンスが特定のメソッドを受け取ることを確認する必要がありますが、多くのインスタンスがそれを受け取るかどうかは気にしません (受け取るはずです)。

私はこのように試しました:

しかし、明らかに、単一のインスタンスのみがメソッドを複数回受け取ることができますが、異なるインスタンスは受け取れません。

それを達成する方法はありますか?

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

ruby-on-rails - クラスがRSpecでメッセージを受信するかどうかをテストするには?

次のようなサービス オブジェクトがあります。

そして、私は次の関連仕様を持っています:

に電話するたびにメッセージを確実にEquityContract受信できるようにしたい。find_by#call

仕様を実行すると、次のようになります。

この動作をテストするにはどうすればよいですか?

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

ruby-on-rails - コントローラーの検索メソッドで Searchkick をスタブする方法

私はRSpecが初めてです。検索コントローラーをテストしたい。コントローラーで検索メソッドをスタブしようとしましたが、常に失敗します。

Searchkick を隔離する正しい方法は何ですか?

コントローラーでの検索方法は次のとおりです。

そして、ここに私のコントローラーテストがあります:

貴重な時間をありがとう!

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

ruby - RSpecでは、定数引数で呼び出されたメソッドをどのようにモックできますか?

(ジェネレーターの実行後)使用されているアプリで定数を持つgemを作成していますが、その定数はgem自体には存在しません。定数を呼び出しているコードの部分をスキップしない、gem 内の RSpec に問題があります。何が起こっているかの簡単な例を以下に示します。

foo_spec.rb

rspec 出力

Bar.send呼び出しを完全にスキップして、その中に悪い定数があることを決して知らないようにテストを書きたいと思います。これを回避する良い方法は本当にありません。

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

ruby - rspec-mocks の receive.with を積極的に失敗させる方法

rspec-mocks 'expect(target).to receive(:message).with(arg_matcher)は、 に渡された引数マッチャーと一致しないパラメーターでターゲットが呼び出された場合にのみ、テストの最後にエラーを表示しますwith。強制的に失敗させる方法はありますか?つまり、一致しないパラメーターでターゲットが呼び出されるとすぐに失敗しますか? RR はこのように機能します。

私が直面している問題は、上記のように arg_matcher を使用してこのモックを設定すると、ターゲットが異なるパラメーターで呼び出されるためテストが失敗し始めますが、テストの終了前に別のアサーションが失敗するため、エラーのみが表示されることです不足しているモックからではなく、このアサーションから(予想されるパラメーターと実際に呼び出されたパラメーターの違いを示していたでしょう)。

rspec-mocks の使用 3.3.2.

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

ruby-on-rails - モックとスタブを使用してコードをリファクタリングする

私はレールの初心者で、スタブとモックを使用してコントローラーコードをテストしようとしています。コードでモックを使用してみましたが、正しく実行できませんでした。リファクタリングされた正しいコードを教えてください。あなたが書いたコードの説明を手伝ってください。

d