問題タブ [rspec-rails]
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 / Authlogic / Capybara - 誤ったリダイレクト
私はテストが初めてで、でテストを書こうとしていlinks_spec.rb
ます。
まず、@user = Factory.build(...)
ユーザーが重複していると表示されているため、この行はエラーをスローします。Company と User には適切なポリモーフィックな関係がなく (これは別の話です)、Company.rb が存在しないため、ユーザーが作成されている場所がわかりません。作成時にユーザーを自動的に作成します。
そのため、その行を削除すると、その行に到達した場合を除いてすべて問題ないように見えますresponse.should redirect...
。にリダイレクトする代わりにlinks_path
、テストが失敗し、次のように通知されます。
なぜこれが起こっているのか、それを修正する方法がわかりません。
ruby-on-rails-3 - rspec render_views はレイアウトを無視しますか? 静的キャッシュ ページをテストしたいが、フラッシュ メッセージが表示されない
レールを介して生成された「静的」ページ(ERBですが、キャッシュされます)をテストしようとしていますが、認証システム(Devise)または他の場所によって残された浮遊フラッシュ通知をレンダリングしません。
このコントローラーの仕様を書いてみましたが、response.body はレイアウトではなく、テンプレートのみをレンダリングしているように見えますか?
フラッシュ通知をレンダリングするレイアウトに変更し、テキストをレイアウト テンプレートに挿入することさえ試みましたが、仕様を失敗させることはできません。
テンプレートを適切なレイアウトでレンダリングするようrspecに依頼する方法はありますか?
コントローラーの仕様は、これを試みる間違った方法ですか? 使用されているレイアウトとその内容に関係しているため、場違いに思えますが、レンダリング プロセスはコントローラーで開始され、結果を受け取り、レンダリング前にフラッシュ ハッシュの内容を操作できます。
バージョン: rails (3.0.10)、rspec-rails (2.6.1)、rspec-core (2.6.4)
ありがとう、ニック
ruby-on-rails - autotest は rspec 共有の例では機能しません
私のテストは次のようになります。
無事に走れますrspec spec
。しかしautotest
失敗します:
これは、によって生成された rspec コマンド ラインにautotest
以下が含まれているためuser_shared.rb
です。
'/path/to/project/spec/models/user_shared.rb'
コマンドラインから削除して手動で実行すると、動作します。
ここで、これを次のように変更user_shared.rb
すると:
によって生成されたコマンドラインでも動作しautotest
ます。しかし、それは醜い回避策です。
rspec
「*_spec」ファイルのみが睾丸であることを知っているので、どのautotest
ようにこのように構成できますか?
私のGemfileには次のものがあります(テストに関連):
ruby-on-rails - ルートによる Rails 検証の除外
ユーザー名が最初のルーティング ブロックの 1 つと等しい場合、ユーザーが無効であることをテストしたいと考えています。現時点では、次のように rspec で指定しています。
問題は、これにより仕様が遅くなるということです。最初のすべてのルート要素が除外されている場合、仕様を変更するためのより良い方法はありますか?
ruby-on-rails - rspec を使用してファイルのアップロードをテストする - rails
Rails でファイルのアップロードをテストしたいのですが、その方法がわかりません。
コントローラーのコードは次のとおりです。
この仕様を試しましたが、うまくいきません:
rspec を使用してファイルのアップロードをシミュレートするにはどうすればよいですか?
ruby-on-rails-3 - rspecを使用したafter_createフックのテスト
モデル(RoR 3.0.x)には、多かれ少なかれ次のようなコードがあります。
そして、私はそれをテストするために最新のrspecgemを使用しています。問題は、notifyメソッドをテストできないことです。直接テストすると、保護されているためテストできません。メッセージを作成して期待値を設定すると、rspecがnotifyメソッドを実行しているにもかかわらず機能しないようです。時間内に電話に出られません。
私のスペックは:
オブジェクトNotifierはmessage_from_portfolioを受信しません。私は何が間違っているのですか?提案?
ruby - Errno::ENOENT: rspec テストの実行中にエラーが発生しました。ファイルが存在しないと言われていますが、存在します
そのため、コントローラーをテストしようとしていますが、問題が発生しています。コードの一部ではファイルをロードする必要がありますが、次のエラーが表示されます:
ただし、ファイルは終了します。ブラウザーで実行すると、問題なく正常に動作します (ただし、まだテストを作成したい)。
これが関係しているかどうかはわかりませんが、テストを実行するときにデータベースを使用しています。これが実際に行うべき方法ではないことは知っていますが、他の方法は知りません。
どんな助けでも素晴らしいでしょう。ありがとう。
ruby-on-rails - rspecを使用してルーティング仕様でhttpsプロトコルを指定するにはどうすればよいですか?
私のルートファイルには次のものがあります。
このルートの仕様を次のように追加しようとしています。
ただし、仕様はまだ失敗します。を削除する:protocol => 'https'
と、仕様も失敗します。
ruby-on-rails-3 - サブドメイン、キュウリまたはカピバラと rspec を使用したテスト
私のプロジェクトの開発の一部が完了しました.当社は、開発したコードと今後の開発のためにキュウリのテストケースを書くように私に依頼しました. routes ファイルには、admin と hosts の 2 つのサブドメインがあります。Devise も使用されています。
今、私はきゅうりをインストールし、登録されていないユーザーがホームページにアクセスし、有効な電子メールを入力して次のページにリダイレクトされたときの最初のストーリーの最初のシナリオを書きました..ページにはパスワードフィールドがありません.
問題はルートファイルにあります。
その特定のサブドメインで root_path を探すために path.rb ファイルを指定するにはどうすればよいですか。サブドメインの制約の外側に root_path が記述されていません。テストは今回が初めてです。私は本当にこれにこだわっています.どんな助けでも大歓迎です.
これがカピバラを使って実装できることを誰かから知りました. もしそうなら、それについて少し教えてください.
ruby-on-rails - rSpec ==/eql は「同じ」ものを比較できない
ActiveRecord スコープを取得するコントローラー インデックス テストがあります。現在、テストは次のようになっています (インライン デバッグを含む):
出力は次のとおりです。
Rails と rSpec の最近のバージョンでこの問題が発生したのは、これが初めてではありません。以前は、同僚はアイテムを でラップしto_a
て比較していましたが、これは少し汚いので、良い解決策ではない可能性があります。
何か案は?それらが異なると考える理由と、この同じテストが古いバージョンのRailsおよび/またはrSpecでどのように合格したかについて、私は興味があります。