問題タブ [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.

0 投票する
3 に答える
2701 参照

ruby-on-rails - Railsモデルのafter_initializeコールバックをテストするには?

テストには FactoryGirl と Rspec を使用しています。nil の場合、モデルは init の後に外部キーを設定します。そのため、別の協会のデータを使用しています。しかし、どうすればテストできますか?通常、このオブジェクトの作成にはファクトリを使用し、「self.user.main_address.country_id」には stub_chain を使用します。ただし、このオブジェクトの作成により、after initialize が呼び出されます。私はそれをスタブする機会がありません。

何か案が?

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

ruby-on-rails - Railstutorial.orgプレゼンステストの検証

私はrailstutorial.orgでチュートリアルを進めてきましたが、セクション-6.2.1プレゼンスの検証の作成者のコードに少し困惑しました。

ユーザーモデルでは、チュートリアルはを追加しますvalidates :name, :presence => true。十分に単純です。

著者がrspecテストを書くことを選択したとき、彼は私が少し奇妙だと思った何かをします。

@attr空白の文字列をマージして、:eachブロックステートメントを削除して次のように記述できるようにするのに、なぜ問題が発生するのでしょうか。

著者が変数を使用して電子メールアドレスの存在も検証していることを知ってい@attrます。これは、彼がブロックステートメントを使用した理由の1つの指標です。私にとっては、2番目のブロック引用符の構造に従う方が理にかなっています。それでも、ここに欠けているものがあるような気がします。

私の頭に浮かんだもう1つの説明は、@attr名前と電子メールだけのこのかなり単純なケースとは対照的に、入力するキーがたくさんあるときに構造を使用すると役立つということです。

誰か入力がありますか?

0 投票する
3 に答える
24520 参照

ruby-on-rails-3 - RSpecを使用してRailsで:包含検証をテストするにはどうすればよいですか?

ActiveRecordには次の検証があります。

モデルの検証をテストするために、以下を使用しています。

これをテストする方法として、よりクリーンでより多くのものがありますか?現在、RSpec2とshouldaマッチャーを使用しています。

編集

私が見つけたいくつかの周りを見た後、これはおそらくこれをテストする「OK」の方法です、shouldaはこれに何も提供せず、それを必要とする人は誰でもそれのために独自のカスタムマッチャーを書くことができます(そしておそらくそれをプロジェクトに貢献してください) 。興味をそそられるかもしれない議論へのいくつかのリンク:

  • 上記を示すリンク。リンク1リンク2

  • should_ensure_value_in_rangeこれは使用できるものに近づいていますが、範囲のみを受け入れ、値のリストは受け入れません。カスタムマッチャーはこれに基づくことができます。

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

ruby-on-rails-3 - Rspecでこのコントローラーアクションをテストするにはどうすればよいですか

これをどのように指定する必要がありますか

私の現在のスペック

スペック結果

ルート

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

ruby - rspec / rake の問題 - Rake::DSL のグローバル メソッドが何らかの形でモデルを破壊している

3.1 へのアップグレードに取り組んでいますが、問題が発生しました。

どうやらRakeによって「リンク」メソッドが上書きされているモデル(Mongoidを使用)があります。次のメッセージが表示されます。

メソッドが解決されているため、スタックトレースなどはありません。これは私の rspec で発生しますが、コンソールでは問題は発生しません。

Gemfile は以下にあります。

答えがわからない場合でも、ここでデバッグ プロセスにどのようにアプローチするかについて何か提案があれば、それは素晴らしいことです。

-ジェフ

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

ruby-on-rails - Rspecを使用したRails3.1マウント可能エンジンのテスト

Rails 3.1エンジンの作成を開始しましたが、rspecを使用してテストするのに苦労しています。

まず、実行するrails g integration_test whateverと、spec /requestではなくtests/Integrationで定期的な統合テストが作成されます(rspec-rails gemがインストールされ、gemspecファイルの開発依存関係として必要になります)

また、スペックテストを実行すると、テストしているモデルに対応するテーブルが作成されていないというエラーが表示されます。ダミーアプリ内からrake engine_name:install:migrations実行しようとすると、「テーブルは既に存在します」というエラーが表示されます。rake db:migrate

すべてが切断されているように見えますが、rspec gemを通常のフルレールアプリケーションのようにシームレスに動作させるために、ここに何かが欠けているように感じます。

ここhttp://rubyx.com/2011/03/01/start-your-enginesからのすべての変更に従い、ここhttp:// railscastsに示すように、コンソールからダミーアプリを起動することで、エンジンを手動でテストできます。 com / Episodes/277-mountable-engines

Rails 3.1エンジンをテストするためにrspecをデフォルトにする方法はありますか?

0 投票する
0 に答える
459 参照

ruby-on-rails - Authlogic と RSpec の問題

Authlogic gem を使用して単純な調査アプリケーションを作成しています。テストツールに組み込まれたレールを使用してテストを行ったとき、すべてがうまくいきましたが、Rspecで次のエラーが発生しています: コマンドを実行しようとすると、このエラーが発生しますrequire "authlogic/testcase" from spec_helper.rb

authlogic ではなく、activesupport/dependencies から authlogic/testcase を取得しようとしています。私が間違っているところを誰かに提案してください。バージョン: ruby​​ -1.9.2 rails - 3.0.10 authlogic - 3.0.3 rspec -2.6.0

前もって感謝します

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

rspec - Rails 3.1にアップグレードした後、test_sign_inを使用した多くのrpsecテストが失敗します。おそらく、Cookieの問題ですか?

Rails 3.1にアップグレードしましたが、すべて正常に動作しているようです。しかし、テスト(RSpec)はとにかく失敗します。たとえば、次のテストです。

これはRails3.0.8で正常に機能しましたが、テストは失敗します。テストログには次のように書かれています。

[1m [35mSQL(0.2ms)[0m INSERT INTO users(、、、、、、、) VALUES(1 admin、 '2011-09-21 10:30:30' created_at、 'admin@example.it' email、'68f8a34e0243a642662fe2b6ea8ed7c714d042750a66ce542f2df288caefac32'、encrypted_password'管理者名'、' 6df34c304d79437d495e60d2d34e1028489731afa96690efbc25c714224edb1f'、' 2011-09-21 10:30:30')namesaltupdated_at

CitiesController#showによるHTMLとしての処理[1m [35mUser Load(0.2ms)[0mSELECT users。* usersFROMWHERE usersidヌル制限1

[1m [36mCity Load(0.2ms)[0m[1mSELECT cities。* citiesFROMWHERE citiesid= 942 LIMIT 1 [0m

[1m [35mCity Load(0.2ms)[0mSELECT cities。* citiesFROMWHERE citiesid= 942 LIMIT 1

[1m [36mCity Load(0.2ms)[0m[1mSELECT cities。* citiesFROMWHERE citiesid= 942 LIMIT 1 [0m

[1m [36mUser Load(0.2ms)[0m[1mSELECT users。* usersFROMWHERE usersidヌル制限1[0m

したがって、ユーザーID(NULL)がないようですが、管理者は以前に正しく作成されました。これはCookieの問題でしょうか?

私のGemfileのテストグループは次のとおりです。

私のtest.rbは

そしてこれは私のspec_helperです:

あなたの提案/答えをありがとう!

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

ruby-on-rails - rspec モック "未定義メソッド `stub_model' for #(NoMethodError)」

Rails 3.1 を使用していて、スペックにスタブとモックを追加したかったのですが、NoMethodError が発生しました。

これが私の GemFile の抜粋です。

bundle install と rails g rspec:install を実行しました

そして、これが stub_model を作成しようとするコードです

ここに spec_helper.rb があります:

「rspec ./spec」と「bundle exec rspec ./spec」を呼び出しています(両方を試しましたが、違いはありません)

私がやっていることはすべて教科書のようです (実際、私は The Rails 3 Way に従っています)。

私は何が欠けていますか?