問題タブ [rspec-mocks]

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 に答える
116 参照

ruby-on-rails - Rspec : メソッドに作成される変数をレコードとして宣言する

私はレールにかなり慣れていませんが、解決できない問題に直面しているようです。新しいレコードを作成し、後でそれを使用して新しいサービスをインスタンス化するバックグラウンド ジョブをテストしようとしています。

バックグラウンド ジョブをテストしているので、テスト前にこのサービスの 2 倍を作成する必要があるようですが、パラメーターの 1 つがジョブ内で作成され、ジョブ内で作成された別のレコードを参照として使用します。したがって、実行しようとするたびに、ID に関して常に 1 つの違いがあります。

サンプルコードは次のとおりです。

ご覧のとおり、VideoPerformanceReportService は、ジョブ内で作成された result_slot をパラメーターとして使用し、history_log (ジョブ内でも作成されます) を参照として使用しています。

どうすればこれをテストできますか?

(事前にご協力いただきました皆様、ありがとうございました)

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

ruby - メソッドを受け取るためにモック結果を期待する

クラスがインスタンス化され、特定のメソッドが呼び出されることを期待できるように、クラスをモックしようとしています。

私は試した:

しかし、私が得ているのは次のとおりです。

未定義のメソッド「show?」#RSpec::Mocks::VerifyingMessageExpectation:0x0055e9ffd0b530 の場合

ブロックを提供し、最初に元のメソッド (:new と :show? の両方、最初にバインドする必要がありました) を呼び出してみましたが、エラーは常に同じです。

については知ってexpect_any_instance_ofいますが、コードの匂いと見なされているため、適切に行う別の方法を見つけようとしています。

コンテキスト: 専門家のポリシーがあり、それが呼び出されたかどうかを確認したい

私も試しましたが、同じエラーが発生しました: