我有一个angularjs websocket在service
中工作。我想用jasmine
来测试socket
的基本onOpen onClose onMessage and send
事件。这里是插座是如何在service
定义:模拟Angularjs插座和茉莉花测试
angular.module('srvSocket', [])
.service('Socket', function($websocket, localConfig) {
var ws = $websocket('ws://'+localConfig.apiUrl);
ws.onMessage(onMessage);
ws.onError(onError);
ws.onClose(onClose);
ws.onOpen(function() {
console.log('conn opened');
});
function onMessage(data){
console.log('data received');
ws.send(JSON.stringify({test: 'hi'}));
}
function onError(err) {
console.log(err);
};
function onClose() {
console.log('conn closed');
};
});
这里是我如何使用(试图)服务测试:
describe('Service: Socket', function() {
var socket, $websocket, $websocketBackend, lc;
beforeEach(angular.mock.module('ngWebSocket', 'ngWebSocketMock'));
beforeEach(inject(function(_Socket_, _$websocketBackend_, _$websocket_, localConfig){
socket = _Socket_;
lc = localConfig;
$websocket = _$websocket_;
$mockSocketBackend = _$websocketBackend_;
$mockSocketBackend.mock();
}));
it('should connect to socket api', function(){
var url = 'ws://'+config.apiUrl;
$mockSocketBackend.expectConnect(url);
ws = $websocket(url);
expect($mockSocketBackend.isConnected(url)).to.be.above(0);
});
});
这是我得到多远继documentation here。我基本上在寻找的是如何为服务设置一个模拟websocket服务器?这将使我能够测试我的所有期望?