問題タブ [rspec]

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 投票する
4 に答える
12812 参照

ruby-on-rails - Ruby on Rails アプリケーションで rSpec を使用してオブザーバーをどのようにテストしますか?

Ruby on Rails アプリケーションの 1 つに ActiveRecord::Observer があるとします。このオブザーバーを rSpec でどのようにテストしますか?

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

ruby-on-rails - Rails、Restful Authentication & RSpec - 認証が必要な新しいモデルをテストする方法

Restful Authentication と RSpec を含む基本アプリであるBortを使用して、学習アプリケーションを作成しました。私はそれを起動して実行し、ユーザーが何かを行う前にログインする必要がある新しいオブジェクトを追加しました(before_filter :login_requiredコントローラーで)。[編集: またhas_many、新しいクラスのユーザーとユーザーだけがそれを見ることができるはずであることにも言及する必要があります。]

多数のデフォルト テストを作成した Rspec のジェネレーターを使用して、新しいモデル/コントローラーを作成しました。それらが存在しない場合はすべて合格しますがbefore_filter、予想されるように、 が配置されると、いくつかは失敗しbefore_filterます。

ログインしているユーザーがいる/いないかのように、生成されたテストを実行するにはどうすればよいですか? ログインしていない一致のバッチ全体が必要ですか - リダイレクト テストはありますか? 私はそれがある種のモッキングまたはフィクスチャ手法であると想定していますが、私はRSpecに不慣れで少し漂流しています。優れた RSpec チュートリアル リンクも歓迎します。

0 投票する
11 に答える
14198 参照

ruby-on-rails - RailsでRSpecが遅いのはなぜですか?

Rails アプリケーションの rspec テストを実行するたびに、実際にテストの実行を開始するまでに 1 日のオーバーヘッドがかかります。なぜrspecはとても遅いのですか? Rails の初期ロードを高速化する方法や、必要な Rails アプリの一部 (たとえば、ActiveRecord のもののみ) を選択して、いくつかのテストを実行するためにすべてを完全にロードしないようにする方法はありますか?

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

ruby-on-rails - RSpec でプラグインを指定する最良の方法は何ですか?

私はプラグインを作成しており、BDD を使用してビルドできるように RSpec を使用しようとしています。

これを行うための推奨される方法はありますか?

0 投票する
11 に答える
20232 参照

ruby-on-rails - RSpecとRailsを使用して特定のレイアウトのレンダリングをテストする

RailsでRSpecを使用して、特定のレイアウトの使用をテストすることは可能ですか。たとえば、次のことを行うマッチャーが必要です。

グーグルでuse_layoutマッチャーを見つけましたが、応答もコントローラーもマッチャーが探していたレイアウトプロパティを持っていないようであるため、機能しません。

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

ruby-on-rails - 統合応答の仕様/での最適な場所は?

さまざまな応答をテストしたい統合ポイントがいくつかあります。これらのアーティファクトは、Rails アプリケーションの spec/ ディレクトリのどこに保存すればよいと思いますか?

0 投票する
15 に答える
240348 参照

ruby - RSpecで単一のテスト/仕様ファイルをどのように実行しますか?

たとえば、編集している1つのファイルに対して、単一のスペックファイルのテストを実行できるようにしたい。 rake specすべての仕様を実行します。私のプロジェクトはRailsプロジェクトではないので、rake spec:doc機能しません。

これが重要かどうかはわかりませんが、これが私のディレクトリ構造です。

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

ruby-on-rails - RSpecのストーリーと仕様:いつ何を使用するのですか?

そのため、RSpecストーリーの使用を開始したいのですが、書き込みコントローラー、モデル、およびビューの仕様がどこに適合するのかわかりません。

たとえば、「ユーザーが間違ったパスワードを提供する」というシナリオで「ログイン」するという話がありますが、コントローラー/モデルの仕様(response.should render ...、user.should be_nilなど)と同じものをテストすることになりませんか? 。)

だから私の質問は:RoRでbdd(またはstory dd)を行うことに慣れている人のために、あなたはまだモデル/コントローラーの仕様を書いていますか?もしそうなら、あなたが従うワークフローはどうですか(「最初の話、次に特定の仕様に絞り込む」)?

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

ruby-on-rails - Rspec - プラグインから gem への切り替えに関する問題

rspec および rspec-rails プラグインの使用を中止し、代わりに gem バージョンに切り替える場合、spec_helper.rb で何か変更しなければならないことや、アプリの仕様に変更が反映されるようにするために必要なことはありますか?

プラグインを削除して gem (1.1.8) をインストールした後、スペックを正常に実行できなくなりました。

より具体的には、これは私がしたことです:

  1. 以前にインストールした rspec および rspec-rails プラグインをベンダー ディレクトリから削除します
  2. sudo は、rspec と rspec-rails の両方の gem をインストールしました (この記事の執筆時点では 1.1.8 が最新でした)。

script/autospec を実行すると、次のメッセージが表示されます。

/Library/Ruby/Site/1.8/rubygems.rb:578:in report_activate_error': RubyGem version error: hoe(1.5.0 not >= 1.7.0) (Gem::LoadError) from /Library/Ruby/Site/1.8/rubygems.rb:134:inactivate' from /Library/Ruby/Site/1.8/rubygems.rb:158:in activate' from /Library/Ruby/Site/1.8/rubygems.rb:157:ineach' from /Library/Ruby/Site/1.8/rubygems.rb :157: in activate' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:inrequire' from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509: in require' from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:354:innew_constants_in' from /Library/Ruby/Gems/1.8/gems/activesupport -2.1.0/lib/active_support/dependencies.rb:509: in require' from /Volumes/tangoflash/code/tangoflash/spec/spec_helper.rb:5 from spec/helpers/sessions_helper_spec.rb:1:inrequire' from spec/helpers/sessions_helper_spec.rb:1

textmate を介して単一の rspec の例を実行しようとすると、次のようになります。

/Library/Ruby/Site/1.8/rubygems.rb:578:in report_activate_error': RubyGem version error: hoe(1.5.0 not >= 1.7.0) (Gem::LoadError) from /Library/Ruby/Site/1.8/rubygems.rb:134:inactivate' from /Library/Ruby/Site/1.8/rubygems.rb:158:in activate' from /Library/Ruby/Site/1.8/rubygems.rb:157:ineach' from /Library/Ruby/Site/1.8/rubygems.rb :157: in activate' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:inrequire' from /Users/allanlibunao/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/spec/mate.rb:14 from /tmp/temp_textmate.KQTYKh:3: in `require' /tmp/temp_textmate.KQTYKh:3 から

どんな助けでも素晴らしいでしょう。

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

ruby-on-rails - 「link_to」と「current_page」を使用して RSpec a Rails プラグインをテストするにはどうすればよいですか?

ビューにメニューを作成する Rails プラグインを作成しています。link_toリンクを作成し、現在のページcurrent_page?に設定するために使用しています。class="active"

include使用できるActionView::Helpers::UrlHelperようにしましlink_toた。

ビューで作業するcurrent_page?には、現在のクラス (明らかにActionView::Base) を継承する必要があり、完全にうまく機能します。残念ながら、これは RSpec でのテストを完全に破ります。

私は電話link_toしていてcurrent_page?、このようにしています:

RSpec: Undefined method `link_to' for #< Spec::Rails::Example::RailsExampleGroup::Subclass_1:0x24afa90> でこのエラーが発生します。

どんな手掛かり?