小编Hid*_*per的帖子

单元测试angularjs中的异步服务

我正在尝试对具有异步方法但没有运气的服务进行单元测试.

我试图通过使用angularjs中的$ q支持来实现promises.

任何帮助,将不胜感激.

http://jsfiddle.net/9pBze/37/

angular.module('myapp', ['myservice']);

angular.module('myservice', []).factory('myservice', function($q) {
  var ls = {};

  ls.DoIt = function() {
    var deferred = $q.defer();

    setTimeout(function(){
        deferred.resolve(5);
    },3000);

    return deferred.promise;
  }

  return ls;

});

describe('services', function () {

    beforeEach(module('myservice'));

    it("should equal 2",  inject(function(myservice) {
        myservice.DoIt().then(function(returned) {
            expect(returned).toEqual(2);
        });        
    }));
});
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing asynchronous angularjs

16
推荐指数
1
解决办法
2万
查看次数