問題タブ [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-4 - RSpec::Mocks::Mock:Class の未定義メソッド `i18n_scope'
最近、Rails 4 にアップグレードしました。RSpec テストを実行すると、エラーが発生しました。
これが私の仕様です:
3行目でエラーが発生<NoMethodError: undefined method 'i18n_scope' for RSpec::Mocks::Mock:Class>
しました。
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
ですが、なかなかうまくいきません。
ruby-on-rails - Rspec - expect_any_instance_of と受信カウントを組み合わせる
クラスのインスタンスが特定のメソッドを受け取ることを確認する必要がありますが、多くのインスタンスがそれを受け取るかどうかは気にしません (受け取るはずです)。
私はこのように試しました:
しかし、明らかに、単一のインスタンスのみがメソッドを複数回受け取ることができますが、異なるインスタンスは受け取れません。
それを達成する方法はありますか?
ruby-on-rails - クラスがRSpecでメッセージを受信するかどうかをテストするには?
次のようなサービス オブジェクトがあります。
そして、私は次の関連仕様を持っています:
に電話するたびにメッセージを確実にEquityContract
受信できるようにしたい。find_by
#call
仕様を実行すると、次のようになります。
この動作をテストするにはどうすればよいですか?
ruby-on-rails - コントローラーの検索メソッドで Searchkick をスタブする方法
私はRSpecが初めてです。検索コントローラーをテストしたい。コントローラーで検索メソッドをスタブしようとしましたが、常に失敗します。
Searchkick を隔離する正しい方法は何ですか?
コントローラーでの検索方法は次のとおりです。
そして、ここに私のコントローラーテストがあります:
貴重な時間をありがとう!
ruby - RSpecでは、定数引数で呼び出されたメソッドをどのようにモックできますか?
(ジェネレーターの実行後)使用されているアプリで定数を持つgemを作成していますが、その定数はgem自体には存在しません。定数を呼び出しているコードの部分をスキップしない、gem 内の RSpec に問題があります。何が起こっているかの簡単な例を以下に示します。
foo_spec.rb
rspec 出力
Bar.send
呼び出しを完全にスキップして、その中に悪い定数があることを決して知らないようにテストを書きたいと思います。これを回避する良い方法は本当にありません。
ruby - rspec-mocks の receive.with を積極的に失敗させる方法
rspec-mocks 'expect(target).to receive(:message).with(arg_matcher)
は、 に渡された引数マッチャーと一致しないパラメーターでターゲットが呼び出された場合にのみ、テストの最後にエラーを表示しますwith
。強制的に失敗させる方法はありますか?つまり、一致しないパラメーターでターゲットが呼び出されるとすぐに失敗しますか? RR はこのように機能します。
私が直面している問題は、上記のように arg_matcher を使用してこのモックを設定すると、ターゲットが異なるパラメーターで呼び出されるためテストが失敗し始めますが、テストの終了前に別のアサーションが失敗するため、エラーのみが表示されることです不足しているモックからではなく、このアサーションから(予想されるパラメーターと実際に呼び出されたパラメーターの違いを示していたでしょう)。
rspec-mocks の使用 3.3.2.
ruby-on-rails - モックとスタブを使用してコードをリファクタリングする
私はレールの初心者で、スタブとモックを使用してコントローラーコードをテストしようとしています。コードでモックを使用してみましたが、正しく実行できませんでした。リファクタリングされた正しいコードを教えてください。あなたが書いたコードの説明を手伝ってください。
d