У меня есть angularjs websocket, работающий в service
. Я хочу протестировать основные события onOpen onClose onMessage and send
socket
, используя jasmine
. Вот как сокет определяется в service
:Разъем Mock 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. В основном я ищу, как настроить mock websocket server для службы? Это позволит мне проверить все мои ожидания?