1
我試圖在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,摩卡和斷言。
是的,我也覺得不對。當你在新空間時很難說服你。謝謝。 –
我不懷疑它。儘管如此,仍然不會讓你錯。希望來自框架作者之一的輸入有助於支持你:) – Daff