【发布时间】:2023-03-27 05:51:01
【问题描述】:
我正在尝试测试我的登录控制器,它应该将用户的登录名/密码发送到服务并说明它是否存在于服务中。这是我的代码:
describe('LoginController', function() {
beforeEach(module('task6'));
var $controller, LoginService;
beforeEach(inject(function(_$controller_, _LoginService_) {
$controller = _$controller_;
LoginService = _LoginService_;
}));
describe('LoginController.submitLogin', function() {
it('tests if such user exists', function() {
var $scope = {};
var controller = $controller('LoginController',
{$scope: $scope});
controller.loginField = 'John';
controller.password = 'Smith';
LoginService.signIn(controller.loginField,
controller.password)
.then(function(logged) {
expect(true).toBe(false);
});
});
});
});
但似乎“.then”函数中的测试从未执行过。即使在这些条件下,它也通过了所有测试。
【问题讨论】:
-
您是否尝试过阅读官方文档 - docs.angularjs.org/api/ng/service/$q#testing ?您可以尝试阅读一些文章,例如:brianmcd.com/2014/03/27/…
-
哟,你可以查看这篇文章(我写的)ath3nd.wordpress.com/2013/08/05/15。当然,它是 Restangular 特定的,但 restangular 是一项使用承诺的服务,因此它应该接近您想要实现的目标。另外,你可以看看这个:stackoverflow.com/questions/33367354/…
标签: angularjs unit-testing jasmine promise