2016-10-03 4 views
0

時々、同じワーカーが2回実行されているとき - ユーザーがリクエストを1つずつ高速に送信するときに状況が発生することがあります。条件を追加しました。従業員がすでに開始されていて、従業員の​​がクラスImporterの場合、2回目の待ち行列の開始を許可しません。RSpec:競合状態のためにsidekiqワーカーをテストする

今、仕様を作成する必要があります。

before { 2.times { Importer.perform } } 

、このような競合状態のために労働者をテストするための最良の方法は何ですか:私はこれは良い方法ではありませんようにそれがなめらか呼び出すために、と思いますか? (一般的には、同じクエリを2回以上実行する必要があるときにSidekqワーカーをテストする方法)

答えて

0

[OK]をクリックします。

私はそれをスタブすることに決めました。私はSidekiq::Workers.newを持っているので、私はqueue、​​、argsのように、すべての労働者のパラメータでブロックlet(:sidekiq_workers)を配置しました。

次に内側itブロックこのメソッドは、そのようなクエリが既に存在するかどうかをチェックしています。このテストは "true"を渡して返します。私は別のitブロックを持っています。スタブ付きのsidekiqワーカーがなく、 "false"のテストパスです。

関連する問題