問題タブ [shoulda]
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 - Ubuntu の Rails 3 Shoulda で assigns_to が機能しない
私はrspecとshouldaでRails3を使用しています。私は以下の仕様を持っています
これが私のGemファイルです
ここに私のspec_helperがあります
これまでのところ、すべてが以前に見たものとほぼ一致していますが、テストを実行するたびに、以下のようなエラーが発生します
いいえ、最初はコードが壊れていると思いましたが、アプリケーションは正しく動作します。また、assigns[:site] を使用して値が割り当てられていることをテストすると、テストに合格します。
これらのテストを再び機能させるために、何を変更する必要があるか、誰か考えている人はいますか?
前もって感謝します
アンディ
ruby-on-rails - ショルダー:validates_eachの不明なエラー
検証方法で問題が発生していることを理解しようとして、ひどい時間を過ごしています。
shouldaをインストールしましたが、使用しようとすると、NoMethodError: undefined method '[]' for false:FalseClass
非常に奇妙な奇妙な未定義のメソッドでエラーが発生します。
私はそれをこの問題のあるコードに絞り込みました:
gist-596202で、完全なエラー、問題のあるモデル(簡略化)、テストケース、および環境情報を確認できます。
任意の洞察をいただければ幸いです。
ruby-on-rails - Mocha を使用したアプリケーション コントローラー メソッドのモック/スタブ (Shoulda、Rails 3 を使用)
コントローラーの機能テストを作成しているときに、テストの 1 つが必要とするデータベースからの情報を要求する before_filter があるシナリオに出くわしました。Factory_girl を使用してテスト データを生成していますが、明示的に必要とされていないときにデータベースにアクセスすることは避けたいと考えています。また、ここで before_filter メソッドをテストすることも避けたいと思います (別のテストでテストする予定です)。私が理解しているように、モック/スタブはこれを達成する方法です。
私の質問は、このシナリオでこのメソッドをモック/スタブする最良の方法は何ですか。
私の before filter メソッドは、URL で見つかったサブドメインに基づいてデータベース内のサイトを探し、コントローラーで使用されるインスタンス変数を設定します。
このメソッドを before_filter として使用するコントローラー:
ご覧のとおり、@site
(before_filter によって) 設定される変数に依存しています。@site
ただし、テスト中は、が設定されており、関連付けられたページが少なくとも 1 つある (によって検出された)ことをテストで想定したいと思います@site.pages
。load_site_from_subdomain
後でメソッドをテストしたいと思います。
これが私のテストで得たものです(ShouldaとMochaを使用):
これにより、テスト結果にエラーが表示され、@site
nil であることがわかります。
私はこれについて間違った方法で進んでいるように感じます。サイトを単に Factory.create するだけでデータベースに存在するようにするのは簡単ですが、前述のように、テストを迅速に行うためにデータベースの使用を減らしたいと考えています。
ruby-on-rails - これらの両方のテストはどのように合格していますか?
テストには Shoulda、Mocha、および Test::Unit を使用しています。次のコントローラーとテストがあります。
これらのテストの両方に合格できるのはどうしてですか? どの時点でも、モックを明示的に期限切れにすることはありません。この点でモーカとシュルダのやり取りがうまくいかないことは知られていますか?
ruby-on-rails - Rspec、shoulda、および spork は一緒に動作しません
実行するとrspec spec/models
結果はOKです。
しかし、私がsporkを使用すると、マクロが必要なすべてのテスト ( likeit { should validate_presence_of(:title) }
が使用され、次のようなエラーで失敗します:undefined method 'validate_presence_of' for ...
私が使う:
スペック/spec_helper.rb:
ruby-on-rails - カスタム shoulda マッチャーを TestCase に追加する
shoulda を使用した後は、shoulda がマクロを使用しなくなったことは非常に明確です (それらは優先マッチャーではすべて非推奨です)。たとえば、次のようになります。
次の場合は非推奨です。
ただし、私が見つけることができるすべてのドキュメントは、それらをshoulda_macros
ディレクトリに配置することにより、以前のマクロのセットアップに関するものです。カスタムマッチャーでも同じことができると思っていましたが、見つけられないはずです。
私が使用しているマッチャーはhttp://gist.github.com/613522にあります
カスタムマッチャーを自分のに含めるにはどうすればよいTestCase
ですか?
ruby-on-rails-3 - RSpec、Shoulda、RCovは使えますか?
Rails 3 アプリの RSpec と Shoulda テストで RCov を動作させようとしています。以下の Rake タスクを使用した後、RSpec で問題なく動作するように見えますが、すべての shoulda テストが失敗し、これらを動作させるためのドキュメントが見つからないようです。それらはすべて autotest (rspec および shoulda) で正常に動作します。
ruby - validate_format_of を使用する必要があります。not_with フレームワークに問題があります (または私の理解では)
次のコードを RSpec テストに入れました。
実際のクラスを次のようにセットアップします。
テストを実行すると、次のようになります。
失敗: 1) ユーザーの失敗/エラー: it { should validate_format_of(:email).not_with('test@test')}エラー: ["name can't be blank (nil)", "email is invalid (\"test@test\")"] # ./spec/models/user_spec.rb:8:in `block (2 レベル)の '
次のような合格テストを行うと:
すべてが期待どおりに機能します。私が何か間違ったことをしているのか、それともフレームワークの問題なのか、誰か教えてもらえますか? ありがとうございました。
ruby-on-rails - should_redirect_to を使用した「作成」の機能テストの失敗
Rails アプリケーションで「create」の機能テストを作成するために、「factory_girl」で「shoulda」を使用しようとすると問題が発生します。シンプルなプロジェクトを作成し、ユーザーをスキャフォールディングし、「shoulda」(私のシステムの現在の gem バージョン 2.11.3 ) と「factory_girl」を test_helper.rb に追加しました。ユーザーを手動で作成するとうまくいきます。失敗を再現する手順は次のとおりです。
- レールプロジェクト
- scaffold ユーザー名:文字列
test_helper.rb に追加:
rake db:移行
ユーザー用に次の機能テストを作成します ( users_controller_test.rb をオーバーライドします) :
/li>「rake test:functionals」でテストを実行すると、失敗が表示されます:
応答は へのリダイレクトであると予想されて
<http://test.host/users/1001>
いましたが、 へのリダイレクトでした<http://test.host/users>
。
「should_redirect_to」が非推奨になっているのを見たので、「should_redirect_to」でもプレイしましたが、運がありませんでした。あなたはなにか考えはありますか ?
前もって感謝します、
マリアン・ヴァシル・カライマン。
ruby-on-rails - 私のバックトレースを破壊する必要がありますか?
私は多かれ少なかれこのようなテストをしています:
わざと追加しました
どこかでこのエラーが発生します:
私が何かをうまくやっていくべきとき:
私のバックトレースをサニタイズ/破壊しているアイデアはありますか?私の疑わしいのはshouldaです。これは、例外がセットアップ内で発生した場合、または例外が発生した場合に発生するためです。
重要な場合に備えて、これはRails3プロジェクトです。