Тестирование $ ресурсов сервисов в AngularJS
Я пытаюсь начать писать модульные тесты для моего углового приложения и довольно быстро ударить по остановившемуся блоку, так как не уверен в том, как именно проверять мой сервис тестируемым способом.
Есть ли способ смоделировать вызов 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'});
}));
})
});