Я пытаюсь проверить мой контроллер входа, который должен отправить логин/пароль пользователей в службу и сказать, существует ли он в службе. Вот мой код:angularjs jasmine обещание тестирование
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» никогда не выполнялись. Он проходит все тесты даже при этих условиях.
вы пытались прочитать официальную документацию - https: //docs.angularjs. org/api/ng/service/$ q # тестирование? Чем вы можете попытаться прочитать какую-нибудь статью, например: http://brianmcd.com/2014/03/27/a-tip-for-angular-unit-tests-with-promises.html –
Йо, вы можете проверить эту статью (написано мной) https://ath3nd.wordpress.com/2013/08/05/15/. Конечно, это ретранслятор специфический, но restangular - это сервис, который использует обещания, поэтому он должен быть близок к тому, чего вы хотите достичь. Кроме того, вы можете взглянуть на это: http://stackoverflow.com/questions/33367354/karma-jasmine-how-to-properly-spy-on-a-modal/33367678#33367678 –