問題タブ [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 投票する
0 に答える
366 参照

ruby-on-rails - カピバラ JS テストは別のスレッドで実行されていますか?

js: true を配置すると、Capybara テストが機能するように見えません。テストでDBをどのように処理しているかに関係があると思います。ここでの助けは素晴らしいでしょう。これが私のエラーです:

私の rails_helper.rb

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

ruby-on-rails - opal js の更新後にカピバラの仕様が失敗する?

以前は、opal.js、opal-parser.js、opal-jquery.js (バージョン 0.3x) をロードしていました。js ファイルの代わりに gem opal と opal-rails(バージョン 0.6.2) を追加しました。

以前は、テスト スーツ全体 (カピバラ + rspec) が合格していましたが、更新後、カピバラの仕様が失敗し始めました。有線で動作する場合があります (つまり、firefox では渡されますが、chrome では失敗します)。

エラーの例の1つは

unknown error: Runtime.evaluate threw exception: RangeError: Maximum call stack size exceeded

opal と rspec との互換性の問題があると言われています。

誰かがこの問題を解決するのを手伝ってくれたら、私は感謝します。

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

rspec - rspec3:ページ分割された配列をモックする方法は?

私は rspec3 を使用しており、新しい二重メソッド検証機能を理解しようとしています。次のように、ページ分割された配列の double を作成したいと思います。

ただし、これにより次のエラーが発生します。

これは、rspec が object_double を指定すると検証用の double を作成するためです。のようなものに応答する偽の配列 double を作成したくありません:[]mocks.verify_partial_doubles = falseおそらくobject_doubleが検証を目的としているため、グローバルに設定しても役に立ちません(また、この問題のやり過ぎのようです)。

配列を2倍にする前に配列にページ番号を付けることができることは知っていますが、これを行う必要があるとは感じません。足りないものはありますか?メソッドごとに検証を無効にする機能を提供する rspec を要求する必要がありますか、または非検証オブジェクト double を作成する機能を提供する必要がありますか、またはこのテストを別の方法で作成する必要がありますか?

その間、私は次のように書くことができます:

...しかし、もはや単純な rspec モックのようには見えません。

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

ruby-on-rails-4 - ファブリケーターが読み込まれない

スペックでファブリケーターを使用しようとすると、空の配列が表示されます。私の推測では、ファブリケーター ファイルが読み込まれていません。RSpec の初期化後にファブリケーター ファイルをロードすると、aFabrication::DuplicateFabricatorErrorが発生します。これが私のセットアップです:

  • レール4.1.4
  • rspec コア 3.1.5
  • rspec-rails 3.1.0
  • 製作 2.11.3

.

動作するはずのコードは次のとおりです。

ファブリケーターに空の配列が返された後、specs: を実行するとこのエラーが発生しますundefined method 'email' for []:Array。合格スペックを期待しています。

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

ruby-on-rails - Rspec true != true はいつですか?

Hartl の RoR チュートリアルを読んでいます。rspec テストには、パスワードが一致するかどうかを確認するブロックがあります。このブロックには次の行があります。

これは失敗します。しかし、次の行を入力すると、コードが機能することがわかります。

ブロックでは「true」を出力します。本当に私を驚かせたのは、次の行を入れたことです:

上記の行の代わりに...そしてテストはまだ失敗します。どうしたの?

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

ruby-on-rails-3 - RSpec 3 のヘルパー クラスでスタブを使用すると NoMethodError が発生しますが、RSpec 2 では発生しませんか?

ディレクトリの下に多数のヘルパー クラスが保存されており、spec/supportそれらを多数のテストで再利用しています。例えば、foo_helper.rb

Fooは多くのテストで使用されているため、require ../spec/support/foo_helper.rb使用できるようにしたい各仕様でのみ使用しますFooHelper.stub_thing。これはすべてRSpec 2.xでうまくいきました

RSpec 3.1 にアップグレードしたら、次の減価償却の警告が表示されます。

だから、rspec-actvemodel-mocks私のGemfileに追加した:

ドキュメントに従って、コードを次のように変更しました。

これにより、次のエラーでテストが失敗します。

どのallow_any_instance_ofように定義することはできません, いつany_instancestubは?!

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

ruby-on-rails - ActiveRecord コールバックの存在をテストする

モデル内のコールバック、特にレコードの作成によってトリガーされるコールバックの存在をどのようにテストできますafter_createafter_commit on: :create?

呼び出す (空の) メソッドを使用したコールバックの例を次に示します。

RSpec 3 を使用した保留中の仕様を次に示します。

メッセージの期待値を使用して、メソッドが呼び出されたことをテストする方法のようです。例えば:

しかし、それはうまくいきません。もう 1 つの方法は、レコードが作成されたときに、呼び出されたメソッド内で何かが発生することをテストすることです (たとえば、電子メールの送信、メッセージのログ記録)。これは、メソッドが呼び出されたため、コールバックが存在することを意味します。ただし、実際には何か他のもの (送信された電子メール、ログに記録されたメッセージ) をテストしているので、ずさんな解決策を見つけたので、そのような解決策を探していません。

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

ruby - RSpec 引数に一致するハッシュの配列

rspec が提供する引数マッチャーを使用して、ハッシュの配列を照合したいと考えています。これは理想的には私が望むコードです:

これは、引数の不一致でエラーになりました。私が思いつくことができる唯一の実用的な解決策は次のとおりです。

私は何か間違ったことをしただけですか?

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

ruby - Rspec - サードパーティの例外をスタブする方法

これらの AWS 例外をキャプチャできることをテストしようとしています。

私のRspec 3コード:

しかし、このスタブをテストすると、TypeError が発生します。

AWS::Errors::ServerError を含める必要がありますか? もしそうなら、どうすればいいですか?aws-sdk-v1 gem を使用しています。

ありがとう。