問題タブ [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 - Railsモデルのafter_initializeコールバックをテストするには?
テストには FactoryGirl と Rspec を使用しています。nil の場合、モデルは init の後に外部キーを設定します。そのため、別の協会のデータを使用しています。しかし、どうすればテストできますか?通常、このオブジェクトの作成にはファクトリを使用し、「self.user.main_address.country_id」には stub_chain を使用します。ただし、このオブジェクトの作成により、after initialize が呼び出されます。私はそれをスタブする機会がありません。
何か案が?
ruby-on-rails - Railstutorial.orgプレゼンステストの検証
私はrailstutorial.orgでチュートリアルを進めてきましたが、セクション-6.2.1プレゼンスの検証の作成者のコードに少し困惑しました。
ユーザーモデルでは、チュートリアルはを追加しますvalidates :name, :presence => true
。十分に単純です。
著者がrspecテストを書くことを選択したとき、彼は私が少し奇妙だと思った何かをします。
@attr
空白の文字列をマージして、:eachブロックステートメントを削除して次のように記述できるようにするのに、なぜ問題が発生するのでしょうか。
著者が変数を使用して電子メールアドレスの存在も検証していることを知ってい@attr
ます。これは、彼がブロックステートメントを使用した理由の1つの指標です。私にとっては、2番目のブロック引用符の構造に従う方が理にかなっています。それでも、ここに欠けているものがあるような気がします。
私の頭に浮かんだもう1つの説明は、@attr
名前と電子メールだけのこのかなり単純なケースとは対照的に、入力するキーがたくさんあるときに構造を使用すると役立つということです。
誰か入力がありますか?
ruby-on-rails-3 - RSpecを使用してRailsで:包含検証をテストするにはどうすればよいですか?
ActiveRecordには次の検証があります。
モデルの検証をテストするために、以下を使用しています。
これをテストする方法として、よりクリーンでより多くのものがありますか?現在、RSpec2とshouldaマッチャーを使用しています。
編集
私が見つけたいくつかの周りを見た後、これはおそらくこれをテストする「OK」の方法です、shouldaはこれに何も提供せず、それを必要とする人は誰でもそれのために独自のカスタムマッチャーを書くことができます(そしておそらくそれをプロジェクトに貢献してください) 。興味をそそられるかもしれない議論へのいくつかのリンク:
ruby-on-rails-3 - Rspecでこのコントローラーアクションをテストするにはどうすればよいですか
これをどのように指定する必要がありますか
私の現在のスペック
スペック結果
ルート
ruby - rspec / rake の問題 - Rake::DSL のグローバル メソッドが何らかの形でモデルを破壊している
3.1 へのアップグレードに取り組んでいますが、問題が発生しました。
どうやらRakeによって「リンク」メソッドが上書きされているモデル(Mongoidを使用)があります。次のメッセージが表示されます。
メソッドが解決されているため、スタックトレースなどはありません。これは私の rspec で発生しますが、コンソールでは問題は発生しません。
Gemfile は以下にあります。
答えがわからない場合でも、ここでデバッグ プロセスにどのようにアプローチするかについて何か提案があれば、それは素晴らしいことです。
-ジェフ
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をデフォルトにする方法はありますか?
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
前もって感謝します
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')name
salt
updated_at
CitiesController#showによるHTMLとしての処理[1m [35mUser Load(0.2ms)[0mSELECT users
。* users
FROMWHERE users
。id
ヌル制限1
[1m [36mCity Load(0.2ms)[0m[1mSELECT cities
。* cities
FROMWHERE cities
。id
= 942 LIMIT 1 [0m
[1m [35mCity Load(0.2ms)[0mSELECT cities
。* cities
FROMWHERE cities
。id
= 942 LIMIT 1
[1m [36mCity Load(0.2ms)[0m[1mSELECT cities
。* cities
FROMWHERE cities
。id
= 942 LIMIT 1 [0m
[1m [36mUser Load(0.2ms)[0m[1mSELECT users
。* users
FROMWHERE users
。id
ヌル制限1[0m
したがって、ユーザーID(NULL)がないようですが、管理者は以前に正しく作成されました。これはCookieの問題でしょうか?
私のGemfileのテストグループは次のとおりです。
私のtest.rbは
そしてこれは私のspec_helperです:
あなたの提案/答えをありがとう!
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 に従っています)。
私は何が欠けていますか?