問題タブ [rspec3]

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

ruby - Ruby Rspec3 は、内部メソッドの呼び出しを 1 回受け取ることを期待しています

オブジェクトが特定のケースで最適化を使用しているかどうかをテストしたいと思います。だから私はこの種のコードを持っています

私はそのようなrspecを書いてみます

しかし、それは機能しません...それが可能か知っていますか? はいの場合、どのように?

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

ruby-on-rails - RSpec での単一セットアップに対する複数のアサーション

最適化したい低速仕様がいくつかあります。そのような仕様の例は次のようになります。

これは非常に読みやすく、一般的には満足しています。ただし、仕様を追加するたびに合計実行時間が少なくとも 1 秒長くなります。それはあまり受け入れられません。

HeavyComputation(この質問の範囲外であるため、クラスの最適化については議論しないでください)。

したがって、私が頼らなければならないのは、次のような仕様です。

実行時間は常にほぼ一定であるため、これは明らかにパフォーマンス面ではるかに優れています。問題は、障害を追跡するのが非常に難しく、直感的に読み取ることができないことです。

理想的には、両方を混在させたいと思います。これらの行に沿ったもの:

しかし、残念ながら、どこから実装を開始すればよいかわかりません。これには複数の潜在的な問題があります (共有結果でフックを呼び出す必要があります)。

この問題に対する既存の解​​決策があるかどうか知りたいこと。いいえの場合、それに取り組むための最良の方法は何ですか?

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

ruby - クラス内で期待構文を有効にする

rspec 3.1.0 では、spec は #allow を使用してメソッドをスタブ化できます。

これはうまくいきます。ただし、スタブがクラスのメソッド内にある場合、#allow メソッドは定義されません。

エラーは次のとおりです。

クラス内でスタブする理由

テストは、rspec の "double" メソッドを使用するのではなく、そのテスト double を通常のクラスとして定義します。これは、テスト ダブルにスレッドがあるためです。test double 内には、次のコードがあります。

これにより、セッションが閉じられた後、テスト対象のコードが誤ってソケットを使用するのを防ぎます。

プライベートソリューション

rspec-mock でプライベート API を呼び出すことにより、テストに #allow への二重アクセスを与えることができます。

これは機能します。ただし、rspec/mocks/syntax.rb ではプライベート API として明示的にマークされています。

質問

Rspec 3.1 では、expect 構文をクラス内で使用できるようにするために使用できるパブリックAPI はありますか?

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

ruby-on-rails-4 - Ruby on Rails 4 Rspec、カピバラにボタンが表示されない

カピバラのウェブページにボタンが表示されないようです。ここに私のテストコードがあります

そして、ここで私の見解を見ることができます:

エラーは次のとおりです。

カピバラにこのボタンを見せる方法は?この問題の解決策が見つかりませんでした。事前に感謝します。

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

ruby - 非推奨の RSPEC の翻訳

古い rspec テスト (v 2.1) を最新バージョンの rspec (3.1) で動作するように変換しようとしていますが、この行で問題が発生しています...

subject.should_receive(:damage).with(10)v3.0 の構文はどうなりますか?

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

ruby-on-rails - Rspec テスト コントローラーは、ローカルでパーシャルをレンダリングします

次のようなコントローラーアクションがあります

ここでは、render partial を介して渡されるローカル変数の値をテストする予定です。すなわち
status_namestatus_updated_time

コントローラーでローカルを使用してパーシャルをレンダリングするための rspec の書き方を教えてください。

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

ruby-on-rails - rspec `with` には少なくとも 1 つの引数が必要です。3.1.0 へのアップグレード後のエラー

rspec 3.1.0 を使用するようにコード ベースをアップグレードし、こちらのドキュメントに従っていました: https://relishapp.com/rspec/docs/upgrade

既存のテストの 1 つで、transpec を実行した後に次のエラーが発生します。

"with少なくとも 1 つの引数が必要です。no_argsマッチャーを使用して、引数を受け取らないように設定してください。"

これがテストです。

新しい synatx はもうブロックを受け取りませんか?