5

私はREADMEに従って devise_asyncの指示に従っており、Devise 2.1.2 とdelayed_job を展開しています。キュウリのテストで、サインアップ プロセスの一部として確認メールを受信しなくなりました。テストの一環として行うべきことはありますか? テスト環境で次のように設定することにより、テストの実際の遅延をスキップするように遅延ジョブを既に設定しています。

Delayed::Worker.delay_jobs = false

ただし、これを true に設定しても、速度は遅くなりますが失敗します。devise_async gem と関連する行を削除すると、すべてが元に戻ります。

ありがとう、グレアム

4

4 に答える 4

3

新しいバージョンの devise-async は、レコードがデータベースにコミットされた後にメールをトリガーします。RSpec では、各テストはデフォルトでトランザクションにラップされます。キュウリも同じですか?その場合、これらのテスト トランザクションをオフにする必要があります。

RSpec に使用するものは次のとおりです

于 2012-11-20T00:59:41.033 に答える
2

キュウリ環境でトランザクションをオフにすることができます

使い方を見る:

https://github.com/cucumber/cucumber/wiki/Browsers-and-Transactions

于 2014-03-04T14:39:15.673 に答える
1

Delayed::Worker.new.work_off アプローチを使用してみましたか? Devise async で機能するかどうかはわかりませんが、以前はメールをチェックするために機能していました。

このステップの使用

Given /^Jobs are being dispatched$/ do
  Delayed::Worker.new.work_off 
end

そして、電子メールをテストする前にこのステップを実行しますか?

于 2012-11-16T17:12:33.303 に答える