Tôi đang viết một ứng dụng phía máy chủ với node.js và muốn bao gồm các bài kiểm tra đơn vị. Một điều tôi đang gặp phải là một cách tốt để kiểm tra đơn vị EventEmitter
và setInterval/setTimout
Sự kiện kiểm tra đơn vị được điều khiển javascript
Tôi có những lựa chọn nào để kiểm tra đơn vị javascript bên máy chủ không đồng bộ?
Tôi biết tôi chỉ có thể đính kèm một người nghe khác vào EventEmitter là chức năng kiểm tra nhưng sau đó làm cách nào để tôi kiểm tra chức năng thử nghiệm có chạy không? một phần của bài kiểm tra đơn vị là để đảm bảo mọi phần của bài kiểm tra đơn vị chạy.
Tôi có thể sử dụng setTimeout cho mình nhưng điều đó có vẻ giống như một giải pháp tấn công.
Nếu trợ giúp ở đây là một số mã kiểm tra tôi đang cố gắng kiểm tra.
...
function init(param) {
...
// run update entities periodically
setInterval(this._updateEntities.bind(this, param.containerFull),
1000/param.fps);
...
}
...
EntityUpdater.prototype = {
...
"_updateEntities": function updateEntitiesfunc(fn) {
this._tickEmitter.emit(
"tick",
new dataContainer.DataContainer(this.getEntityCount())
.on(
"full", fn.bind(this)
)
);
},
...
}
...
(Emit sẽ kích hoạt một sự kiện)
[Chỉnh sửa]
tôi bắt đầu đọc một số các xét nghiệm EvevntEmitter tại https://github.com/ry/node/tree/master/test/simple và nó giúp tôi xem làm thế nào để đi về việc này.
Bạn đã xem bài đăng trên blog này chưa? http://debuggable.com/posts/unit-testing-with-node-js:4b647d40-34e4-435a-a880-3b04cbdd56cb – Tmdean
Vâng tôi đã đọc blog, nó rất hữu ích nhưng chỉ bao gồm một vài điểm. Tôi chỉ mới nhận thấy bài kiểm tra sẽ không xuất hiện cho đến khi vòng lặp kết thúc. Điều này vẫn để lại một sự kiện setTimeout & one time một cách dễ dàng. – Raynos
Tôi bây giờ chỉ nhận thấy khối thoát là đối với thử nghiệm chứ không phải máy chủ. Một cách để chạy một khối mã sau khi tất cả các hành động không đồng bộ kết thúc – Raynos