1
EventMachineの内部で動作するSinatraアプリケーションがあります。現在、JSONデータのポストリクエストを受けてストレージを延期し、200 OKステータスコードを返しています。遅延タスクは単にデータをキューにプッシュし、統計カウンタをインクリメントします。コードは次のようになります。遅延アクションをテストする方法 - EventMachine
class App < Sinatra::Base
...
post '/' do
json = request.body.read
operation = lambda do
push_to_queue(json)
incr_incoming_stats
end
callback = lambda {}
EM.defer(operation, callback)
end
...
end
私の質問は、この機能をテストする方法です。
がit 'should push data to queue with valid request' do
post('/', @json)
sleep 1
@redis.llen("#{@opts[:redis_prefix]}-queue").should > 0
end
がすべてのヘルプは高く評価されています。私はRack::Test::Methods
を使用する場合、私は私のテストは、ように見えることができるようにキューと統計情報をチェックする前に延期タスクが完了したことを確認するsleep 1
のようなものに入れて持っています!