Angularjs 如何使用Jasmine编写单元测试以重新启动Angular?

Angularjs 如何使用Jasmine编写单元测试以重新启动Angular?,angularjs,unit-testing,jasmine,karma-runner,restangular,Angularjs,Unit Testing,Jasmine,Karma Runner,Restangular,我知道如何编写测试来获取方法,但其他方法又如何呢?放置、修补、删除 例如,这是我删除用户的服务方法: removeOne: function(user) { var deferred; console.log(user); deferred = $q.defer(); if (_.isUndefined(user.id) || _.isNaN(user.id)) { AlertsServ.logError(err);

我知道如何编写测试来获取方法,但其他方法又如何呢?放置、修补、删除

例如,这是我删除用户的服务方法:

removeOne: function(user) {
      var deferred;
      console.log(user);
      deferred = $q.defer();
      if (_.isUndefined(user.id) || _.isNaN(user.id)) {
        AlertsServ.logError(err);
        deferred.reject(err);
      } else {
        user.remove().then(function(result) {
          AlertsServ.logSuccess('Użytkownik został usunięty');
          return deferred.resolve(result);
        }, function(err) {
          AlertsServ.logError(err);
          console.log(err);
          return deferred.reject(err);
        });
      }
      return deferred.promise;
    } 
应该是这样的:

describe('DELETE /users/1', function() {
  beforeEach(function() {
    return $httpBackend.expect('DELETE', BACKEND_URL + '/users/1').respond(200, 'user1');
  });
  return describe('removeOne method', function() {
    return it('should get one user', function() {
      var user;
      user = {
        id: 1,
        routes: 'users'
      };
      return UserServ.removeOne(user);
    });
  });
});
但是如何定义用户呢


附言:如何在Jasmine/Karma Restangular基url中定义?

现在,有了更多的单元测试经验,我认为我应该模拟Restangular,并且只有在Reastangular被参数正确调用时才进行测试。我不应该在这个测试中添加$httpBackend


在单元测试中,我应该检查我的服务是否工作良好,而不是外部库。我说得对吗?

有一个很有用的例子

如果要添加
expect()
以检查响应值,请不要忘记理解
sanitizeRestangularOne()
sanitizerestangularl()
函数