繁体   English   中英

如何在测试中使用Loopback Angular SDK服务?

[英]How to use Loopback Angular SDK services in tests?

对于Jasmine或Angular,这可能是一个更多的问题,但是我想知道如何在测试中使用Loopback生成的Angular服务。 我不需要自己测试服务,但是我需要测试依赖那些服务的控制器,但是它们没有使用典型的Promise设置。 我通常会在Jasmine中测试基于承诺的服务,如下所示:

var deferred = $q.defer();
$rootScope.currentUser = null;
spyOn(User, 'login').andReturn(deferred.promise);
scope.doLogin();
expect(User.login).toHaveBeenCalled();
deferred.resolve();
$rootScope.$digest();
expect($rootScope.currentUser).not.toBeNull();

但是,如果User.login()来自LoopBack,则其结构如User.login().$promise.then() User.login().then()而不是User.login().then() ,就会出现此错误:

TypeError: 'undefined' is not an object (evaluating 'User.login({ email: user.email, password: user.password }).$promise.then')

我是Angular测试的新手,因此可能缺少明显的东西。

spyOn(User, 'login').andReturn({$promise:deferred.promise});

应该做的把戏

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM