Я пытаюсь начать писать модульные тесты для моего приложения angular и довольно быстро ударить блок остановки, так как я не уверен, как точно издеваться над моим сервисом с возможностью тестирования.
Есть ли способ издеваться над вызовом REST, иначе мне показалось бы, что мне нужно отразить все в моей службе в моих тестах, что для меня не кажется правильным, но я довольно новичок в тестировании, так что, возможно, так оно и есть которые должны быть выполнены. Любая помощь будет принята с благодарностью.
Мой сервис выглядит следующим образом:
angular.module('resources.users', ['ngResource'])
.factory('User', function($resource) {
var resource = $resource('/api/index.php/users/:username', {}, {
'update': {method: 'PUT'}
});
resource.getUser = function(username, successCb) {
return resource.query({username: username}, successCb);
};
return resource;
});
Мой тест состоит из:
describe('User', function() {
var mockUserResource;
beforeEach(module('resources.users'));
beforeEach(function() {
mockUserResource = sinon.stub({
getUser: function(username) {
mockUserResource.query({username: username});
},
query: function() {}
});
module(function($provide) {
$provide.value('User', mockUserResource);
})
});
describe('getUser', function() {
it('should call getUser with username', inject(function(User) {
User.getUser('test');
expect(mockUserResource.query.args[0][0]).toEqual({username: 'test'});
}));
})
});