websocketイベントが発生した後、データが自分のデータベースに追加されることをテストしようとしています。websocketイベントをテストするコードを書くには?
私が協力しているアプリケーションでは、既にこれの実例があります。
it('some test name', function (done) {
this.timeout(12000)
var socket = io.connect('http://localhost:3000', {
'transports': [
'websocket',
'flashsocket',
'jsonp-polling',
'xhr-polling',
'htmlfile'
]
})
socket.emit('some-room-event', {
participant: 'p1',
room: 12,
active: true
})
setTimeout(function() {
app.service('rooms').get(12)
.then(function (room) {
assert(room.active === true)
socket.disconnect()
done()
}).catch(function (err) {
socket.disconnect()
done(err)
})
}, 11000)
})
私はルビーの背景から来て、プロジェクトにスロットを入れているので、私はかなり新しいです。タイムアウトの使用がコードの匂いであるように感じ、それはちょうど間違っていると感じます。あなたは、任意の待機時間でテストを実行するのにかかる時間を長くしたくありません。
私はこれについて多くの記事を読んでいますが、かなり混乱しています。このコードを構造化し、潜在的にsetTimeoutを取り除く良い方法はありますか?
私はfeathersjs、mochaとassertを使用しています。
はい、それはまた私に間違って感じました。あなたが新しい時に人を説得するのは難しいです。ありがとう。 –
私はそれを疑いません。それでもあなたは間違っていません。フレームワークの著者の1人からの入力があなたをバックアップするのに役立つことを願っています:) – Daff