問題タブ [rspec3]

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 に答える
1085 参照

ruby-on-rails - カピバラはrspec機能テストでチェックボックスをチェックしていません

チェックボックスをチェックする必要がある機能テストを作成しようとしていますが、何らかの理由でカピバラがチェックボックスをチェックしていません。

私は使っている:

rspec: 3.0.4 およびカピバラ: 2.4.1

ビューのスナップショットを印刷すると、チェックボックスがチェックされません。

pry でチェックボックス コードを実行すると、文字列 "checked" が返されますが、スナップショットを印刷すると、チェックボックスはまだチェックされておらず、テストに合格しません。このチェックボックスをチェックする別の方法があるかどうか知りたいです。

これまでの私の現在のコードは次のとおりです。

機能テスト:

大きい:

私のテストの出力は、1 人のユーザーが選択されている必要があるということです。つまり、ユーザーがチェックされていません。コンソールでチェック行を実行すると、次のようになります。

どんな助けでも大歓迎です。

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

ruby-on-rails-4 - Rspec を使用したカスタム デバイス登録コントローラーの更新アクションのテスト

パスワード自体を変更する場合を除いて、ユーザーがパスワードを提供せずにアカウントを編集できるようにする場合に、登録コントローラーのカスタム更新アクションを作成する方法について、このdevise wikiドキュメントに従いました。 Devise Wiki - ユーザーがパスワードを入力せずにアカウントを編集できるようにする方法。

しかし、Rspec テストに合格するために何が欠けているのかわかりません。関連するコード スニペットは次のとおりです。

app/controllers/registrations_controller.rb

仕様/工場/users.rb

仕様/コントローラ/登録_コントローラ_仕様.rb

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

何らかの理由で、更新が保存されません。更新を行うためにパスワードを入力する必要があるかどうかわかりません。どんな助けでも大歓迎です。ありがとう!

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

ruby-on-rails-4 - rSpec3 はブロックの周りで倍増します

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

テストごとのライフサイクル外での rspec-mocks からの double または部分的な double の使用はサポートされていません。

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

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

ruby-on-rails - Rails/rspec メソッドは any_instance.stub の代わりに倍増します

現在 RSpec 3 を使用しているプロジェクトがありますが、メソッドをスタブ化するための RSpec 2 構文がまだ含まれています (現在は廃止されています)。

現在、以下を広く使用しています。

これらは、ActiveRecord モデルに含まれるシミュレーション モジュールから呼び出されます (これはすぐに重要です)。

シミュレーションのメソッドは、アプリケーションが仕様を実際に実行するか、モック モードで実行するかに基づいて、仕様内から呼び出されます。

したがって、シミュレーション モジュールは次のようになります。

これを double を使用するように変換しようとしていますが、double に相当する構文がわかりません。

の動作を複製する方法で、誰かがダブルスで私を助けることができますany_instance.stubか?

編集1

これまでに最も近いのは次のとおりです。

しかし、コントローラーに投稿するときにオブジェクト ID が変更されると、メソッドはスタブされなくなります。

編集2

これは私が提供できる限りのコードです:

次に、シミュレーション:

仕様:

さて、問題はany_instance.stub、シミュレーションで double、特に部分的な doubleを使用するように変更するときです。これは、次のようなもので、取得できた中で最も近いものです。

メソッドは固執しますが、私のテストでは実際の API インタラクションが実行され、コントローラーでプロバイダーが再び検出されるため、同じインスタンスではないProviderため、もちろんメソッドはデフォルトに戻ります。

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

ruby-on-rails - 包含検証のためにRSpecで空白/空の文字列をテストするにはどうすればよいですか?

A私の検証では、必須フィールドは次のいずれかにのみ設定できることが保証されていますR

モデル内:

RSpec には、次の仕様があります。

最初の RSpec はパスしますが、2 番目の RSpec でエラーが発生します。

私は何が欠けていますか?RSpec 3.1 を使用しています。

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

ruby-on-rails - FactoryGirl: has_many :through、validates_presence_of: アソシエーション エラー: 空白にできませんか?

私の Article ファクトリで以下のテストの失敗を受け取りました。これは、私の Categories モデルと has_many through:, validates_presence_of の関係を持っています。カテゴリは記事が作成される前に存在する必要があるため、作成中の記事にいくつかのカテゴリを作成して関連付けるために before(:create), create_list フックを設定しましたが、次のエラーが発生します。関連付け(例: 関連付け :categories、factory: :category)も使用してみましたが、読んだ内容に基づいて、モデルが持っている関係 (have_many :through) では before(:create) フックを使用する必要があります。 . 私は何が欠けていますか?

モデル

工場