問題タブ [rspec2]
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 にコントローラー マクロを追加する
Rspec 用のいくつかのコントローラー マクロを定義しようとしています。Rails 3 を使用していて、spec/support/macros/controller_macros.rb でマクロを定義しています。そのファイルは次のようになります。
私のspecヘルパーには次のものがあります:
したがって、コントローラーの仕様では、管理者テストで login_admin を呼び出すだけですが、メソッドを使用するたびに取得します
最初は、controller_macros.rb が含まれていないと思っていましたが、ファイルに「puts」を追加すると、ファイルが少なくとも実行されていることがわかりました。
セットアップに問題は見られず、login_admin メソッドを記述ブロックにコピーしても問題なく動作するので、何が問題なのかわかりません。
webrat - RSpec、webrat、エスケープ文字
Rails 3 のwebratでRSpec 2を使用してビューをテストしています。ビューに特殊文字 ( など) が表示されないようにしたい。これが私の仕様です:“
“
問題は、ブラウザー (Chrome と Firefox でテスト済み) が引用符を解析しないのに対し、webrat は引用符を解析することです。ブラウザが行う文字列を解析するように RSpec または webrat に指示する方法はありますか?
ruby-on-rails - RSpecをRake、Rails、および既存のテストとどのように統合する必要がありますか?
Railsアプリのテストを作成するためにRSpecを使い始めたいのですが、Test::Unitを使用して作成された既存のテストがたくさんあります。すべてのテスト(またはすべての単体テスト、機能テストなど)を、次のようなコマンドラインから簡単に実行できるようにしたいと思います。
または何でも、Test :: UnitまたはRSpecで記述されているかどうかに関係なく、すべての単体テストを実行します。そして、私は間違いなく、既存のテストをRSpecに変換するために多くの時間を無駄にしたくありません。それは初心者ではありません。
今のところ、RSpecテストを既存のテストと一緒に、テスト/単体、テスト/機能などで存在させたいと考えています。これを実現するための最良の方法は何ですか?それとも、これはまったく良い考えですか?つまり、私はRSpec(さらに言えばRubyとRails)にかなり慣れていないので、RSpecを分離しておく方が良い方法かもしれません。ただし、ファイルシステムのどこに保存されているかに関係なく、1つのrakeタスクですべてのテストを実行できる必要があり、rcovを使用してテストコーパス全体のコードカバレッジ数を収集する必要があります。私はすでに既存のテストを行っています。
ruby-on-rails - should_receive とともに stub_chain
メソッド呼び出しチェーンで、メソッドの 1 つが特定のパラメーターを取得するかどうかをテストしようとしています。たとえば、以下のコードでは、 MyModel は method のパラメーター 0 を受け取る必要がありますoffset
。残念ながら、以下のコードは機能しません。should_receive と stub_chain を混在させることはできないようです。どうすればこれを解決できますか?RSpec2を使用しています。
私がテストしようとしているコード:
アップデート
RSpec の Google グループにも質問を投稿し、David (RSpec の作成者) が回答しました (David に感謝): http://groups.google.com/group/rspec/browse_thread/thread/6b8394836d2390b0?hl=en
ruby-on-rails - rake 仕様でエラーが発生する
こんにちは、みんな、
私は gem の管理が苦手で、RSpec を適切に機能させるのに問題があります。私の中で
私はこれらを持っています
そして、私が実行するrake spec
と、これらを取得します
欠落しているgemバイナリに対してbundle installを実行しようとしたところ、これが得られました
何が起こっているのかわからず、デバッグとグーグルを試してみましたが、進歩はありませんでした。これらを修正する方法を知っている場合は、私を助けてください。
私が何か間違ったことをしているなら、私にも知らせてください
ruby - 自動テスト、RSpec2およびRuby1.9.2-p0-出力がまったくない
「 Rubyを使用した継続的テスト(B2.0印刷)」という本を始めましたが、すぐに問題が発生します。最初の章では、Jeweler1.5.1を使用して空のGemを作成しました
rakeを使用して仕様を手動で実行すると、正しい失敗した出力が得られます
AutotestをRSpec2用に構成するために、本や他の場所で説明されているように、プロジェクトのルートに./autotest/discover.rbを作成しました。内容は次のとおりです。
しかし、自動テスト(ZenTest 4.4.0)を介してRSpec(2.2.0)仕様を実行しようとすると、出力がまったく得られません。
これはすべて、RVM(1.0.2)を介してRuby1.9.2-p0を使用しています。Ruby 1.8.7-p302に切り替えると、期待どおりに動作します。
ruby-on-rails - RSpec の失敗を理解する
の実行中にこれらのエラーが発生しますrspec spec/
。失敗しているスペックは、スキャフォールディングで自動生成されたものです。RSpec を理解しようとしていますが、メソッドが欠落しているように感じる以外に、どこから原因を探し始めればよいかわかりません? ! ? それでも、アプリは正常に動作しているようです。これらの障害については、 には何も表示されません。これを追跡するためのヒントを探す必要がある別の場所はありますか?test.log
そして、これが明らかに失敗する仕様です ( edit.html.haml_spec.rb
)。によって自動生成されましたrails g scaffold Clown name:string balloons:integer
:
ruby-on-rails - RSpec ドキュメント...どこに隠れていますか?
RSpec-2 (およびrspec-rails ) のドキュメントを探すのに苦労しました。具体的には、利用可能なすべてのマッチャーを検索したいのですが、どうすればよいでしょうか?
私はもう試した:
- RSpec.info : 古い - RSpec 1.x
- rdoc.info : とにかく私には役に立たないようです。(不完全な?)
- RSpec-Relish : 紛らわしい。不完全な?利用可能なマッチャーをどのように検索しますか?
- GitHub Wiki : 散在する情報。組織化されていない。不完全な?
はい、 The Bookのことは知っていますが、まじめな話、これはオンラインではありませんか?
試しrake doc:plugins
てもうまくいきませんでした。あまりにも緑すぎて理由がわかりません...
どうやらrspec.rubyforge.orgにまともな 1.x ドキュメントがあったようです。しかし、それらは長い間なくなっているようです...
これらのドキュメントはどこに隠れていますか?
ruby-on-rails - 関連する (belongs_to) 関係の RSpec スタブとモック
Rails 3 の scaffolding で生成されるデフォルトの仕様を拡張しようとすることで、RSpec の信じられないほど紛らわしい構文について、少なくとも最初は理解しようとしています...
私はモデルを関連付けています...非常に単純です:
しかし、rabbits_controller.spec.rb に問題があります。つまり、ピエロなどを参照すると仕様が失敗します。うさぎの見解の1つである名前。ばかげた単純なアプリは期待どおりに動作しますが、ウサギから正しく応答するためにピエロをスタブ (または嘲笑) していないため、仕様は失敗します (または、少なくともそれが起こっていると思います)?!? スタブを追加するにはどうすればよいですか (または、ウサギが関連付けられているピエロを嘲笑しますか?)。
既存:
ruby - モックでメソッドが呼び出されていないことをアサートする
Flexmock モッキング フレームワークを使用して、Rspec2 でテストを作成しています。メソッドの 1 つが結果をキャッシュすることを期待しており、これをモックで検証したいと考えています。
:expensive_method
決して呼び出されないようにしたい場合、これは適切に機能します。:method
ただし、渡された (モック) クラスで何も呼び出さずにクラスが実行できることを期待しています。これを表現する方法はありますか?
背景:私の場合、注入されたクラスはコストのかかる操作を実行するため、同等のクエリに対して結果をキャッシュする必要があります。
更新
これまでの提案に感謝します。おそらく、間違ったことを想定しているだけか、私が望むものが意味をなさないかもしれません。キャッシングを実装する方法は、クラス変数を保持し、SomeClass
それに追加することです:method
。
ここで、正しいキャッシングをテストするために、:extensive_method
少なくとも 1 回呼び出してキャッシュをロードする必要があります。私はDavid Chelimskyの解決策が好きですが、それは私の当初の意図に答えていません。つまりSomeClass.method
、注入されたクラスへの最初の呼び出しの後、二度と呼び出されないことをテストします(どちら:expensive_method
も他にもありません)。