약속을 반환하는 Jasmine 단위 테스트 각도 서비스가 해결되지 않습니다.

DavidMIRV

이 테스트 코드가 주어지면

it('can login', inject(function ($httpBackend,$rootScope) {
        // Set up the mock http service responses
        authRequestHandler = $httpBackend.when('POST', '/login')
            .respond({success: true, user: {email: '[email protected]', roles: ['user']}});
        var promise = dsAuth.authenticateUser('123', '123')

        promise.then(function (success) {
            console.log('Got login response');
            expect(success).toBe(true);
            expect(dsIdentity.isAuthenticated()).toBe(true);
            console.log(dsIdentity.currentUser);
        });
        $rootScope.$digest(); //a solution found in on SO that doesn't work
    }));

(인증 서비스에서 반환되는) 약속이 해결되지 않습니까? 이 문제를 어떻게 해결할 수 있습니까? .then () 함수의 코드는 호출되지 않습니다.

서비스 코드 :

(function(angular) {
angular.module('dsApp').factory('dsAuth',
    ['$http','$q',dsAuth]);
function dsAuth($http,$q) {
    return {
        authenticateUser: function(username,password) {
            var dfd = $q.defer();
            $http.post('/login', {username: username, password: password}).then(function (resp) {
                console.log($resp);
                if (resp.data.success) {
                    var user = new atUser();
                    angular.extend(user, resp.data.user);
                    atIdentity.currentUser = user;
                    dfd.resolve(true);
                } else {
                    dfd.resolve(false);
                }
            });
            return dfd.promise;
        },
        logoutUser: function() {
            var dfd = $q.defer();
            $http.post('/logout', {logout: true}).then(function () {
                atIdentity.currentUser = undefined;
                dfd.resolve();
            });
            return dfd.promise;
        }
    };
}

}) (this.angular);

데이비드가 말하는 모니카 복원

Jasmine은 비동기 기대와 함께 작동하지 않습니다. 이에 대한 해결책은의 flush()기능 을 사용하는 것입니다 httpBackend.

it('can login', inject(function ($httpBackend,$rootScope) {
        // Set up the mock http service responses
        authRequestHandler = $httpBackend.when('POST', '/login')
            .respond({success: true, user: {email: '[email protected]', roles: ['user']}});
        var promise = dsAuth.authenticateUser('123', '123')
        var success = false;

        promise.then(function (result) {
            console.log('Got login response');
            success = result;
            console.log(dsIdentity.currentUser);
        });
        $httpBackend.flush();
        expect(success).toBe(true);
        expect(dsIdentity.isAuthenticated()).toBe(true);
    }));

나는 그것이 어디에서 왔는지 잘 모르겠지만, dsIdentity당신 자신의 코드에서 그것을 알아낼 수 있다고 생각합니다. 패턴은 동일합니다. 클로저 외부에 변수를 생성 한 다음 클로저 내부에 값을 설정합니다. flush()화재에 대한 약속을하게됩니다 그리고 당신은 갈 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Jasmine을 사용하는 API의 단위 테스트 약속

분류에서Dev

테스트가 서비스 모의 약속 (.then)을 실행하지 않습니다.

분류에서Dev

Promise를 반환하는 단위 테스트 서비스 Angularjs Jasmine

분류에서Dev

각도 테스트 : 관찰 가능 항목을 반환하는 메서드가 성공적으로 테스트되었지만 테스트 범위는 여전히이를 커버되지 않은 진술로 표시합니다.

분류에서Dev

AngularJS에서 서비스를 호출하고 Karma 및 Jasmine을 사용하여 테스트 한 후 Angularjs 단위 테스트가 컨트롤러의 일부에 도달하지 않음

분류에서Dev

Jasmine / Karma를 사용하여 서비스를 단위 테스트하면 서비스 사본이 주입되지 않습니다.

분류에서Dev

AngularJS 서비스 함수가 약속을 반환하지 않습니다.

분류에서Dev

Visual Studio2013에서 jasmine 및 chutzpah를 사용한 단위 테스트 angularjs가 작동하지 않습니다.

분류에서Dev

값을 반환하지 않는 함수 단위 테스트

분류에서Dev

약속을 사용하는 각도 팩토리 함수가 jasmine에서 오류를 던지고 있는지 테스트하는 방법

분류에서Dev

각도기 테스트에서 약속을 반환하지 않는 메서드의 흐름을 제어하는 방법

분류에서Dev

각도 js에서 서비스의 단위 테스트 약속

분류에서Dev

비동기 ajax 호출을 사용한 Sinon / Mocha 테스트가 약속을 반환하지 않았습니다.

분류에서Dev

Jasmine으로 배열을 반환하는 각도 필터 테스트

분류에서Dev

단위 테스트를 위해 아무것도 반환하지 않는 파이썬 함수 내부의 값을 어떻게 얻습니까?

분류에서Dev

각도 단위 테스트가 ag-Grid를 초기화하지 않습니다.

분류에서Dev

Jasmine : Jodit이 정의되지 않았습니다. 단위 테스트

분류에서Dev

Jasmine 단위 테스트 모듈이 정의되지 않았습니다.

분류에서Dev

요소를 테스트하는 Jasmine 단위는 숨겨져 있지 않습니다.

분류에서Dev

간단한 각도 서비스가 작동하지 않습니다.

분류에서Dev

Jasmine, AngularJS : 시간 초과 후 값을 반환하는 함수 단위 테스트

분류에서Dev

각도 단위 테스트 : 테스트 명령이 작동하지 않음

분류에서Dev

Angular 8에서 Jasmine으로 약속을 테스트하기 위해 콜백 함수를 모의하는 방법

분류에서Dev

AngularJS Jasmine 단위 테스트-컨트롤러 메서드가 호출되지 않습니다.

분류에서Dev

단위 테스트에서 비동기가 동일한 스레드에서 계속되지 않습니다.

분류에서Dev

ios-sim에서 단위 테스트를 시작해도 모든 테스트가 실행되지는 않습니다.

분류에서Dev

ios-sim에서 단위 테스트를 시작해도 모든 테스트가 실행되지는 않습니다.

분류에서Dev

TypeError : $ scope가 Jasmine을 사용한 Angular 컨트롤러 단위 테스트에서 정의되지 않았습니다.

분류에서Dev

단위 테스트 서비스는 Factory를 주입하지 않습니다.

Related 관련 기사

  1. 1

    Jasmine을 사용하는 API의 단위 테스트 약속

  2. 2

    테스트가 서비스 모의 약속 (.then)을 실행하지 않습니다.

  3. 3

    Promise를 반환하는 단위 테스트 서비스 Angularjs Jasmine

  4. 4

    각도 테스트 : 관찰 가능 항목을 반환하는 메서드가 성공적으로 테스트되었지만 테스트 범위는 여전히이를 커버되지 않은 진술로 표시합니다.

  5. 5

    AngularJS에서 서비스를 호출하고 Karma 및 Jasmine을 사용하여 테스트 한 후 Angularjs 단위 테스트가 컨트롤러의 일부에 도달하지 않음

  6. 6

    Jasmine / Karma를 사용하여 서비스를 단위 테스트하면 서비스 사본이 주입되지 않습니다.

  7. 7

    AngularJS 서비스 함수가 약속을 반환하지 않습니다.

  8. 8

    Visual Studio2013에서 jasmine 및 chutzpah를 사용한 단위 테스트 angularjs가 작동하지 않습니다.

  9. 9

    값을 반환하지 않는 함수 단위 테스트

  10. 10

    약속을 사용하는 각도 팩토리 함수가 jasmine에서 오류를 던지고 있는지 테스트하는 방법

  11. 11

    각도기 테스트에서 약속을 반환하지 않는 메서드의 흐름을 제어하는 방법

  12. 12

    각도 js에서 서비스의 단위 테스트 약속

  13. 13

    비동기 ajax 호출을 사용한 Sinon / Mocha 테스트가 약속을 반환하지 않았습니다.

  14. 14

    Jasmine으로 배열을 반환하는 각도 필터 테스트

  15. 15

    단위 테스트를 위해 아무것도 반환하지 않는 파이썬 함수 내부의 값을 어떻게 얻습니까?

  16. 16

    각도 단위 테스트가 ag-Grid를 초기화하지 않습니다.

  17. 17

    Jasmine : Jodit이 정의되지 않았습니다. 단위 테스트

  18. 18

    Jasmine 단위 테스트 모듈이 정의되지 않았습니다.

  19. 19

    요소를 테스트하는 Jasmine 단위는 숨겨져 있지 않습니다.

  20. 20

    간단한 각도 서비스가 작동하지 않습니다.

  21. 21

    Jasmine, AngularJS : 시간 초과 후 값을 반환하는 함수 단위 테스트

  22. 22

    각도 단위 테스트 : 테스트 명령이 작동하지 않음

  23. 23

    Angular 8에서 Jasmine으로 약속을 테스트하기 위해 콜백 함수를 모의하는 방법

  24. 24

    AngularJS Jasmine 단위 테스트-컨트롤러 메서드가 호출되지 않습니다.

  25. 25

    단위 테스트에서 비동기가 동일한 스레드에서 계속되지 않습니다.

  26. 26

    ios-sim에서 단위 테스트를 시작해도 모든 테스트가 실행되지는 않습니다.

  27. 27

    ios-sim에서 단위 테스트를 시작해도 모든 테스트가 실행되지는 않습니다.

  28. 28

    TypeError : $ scope가 Jasmine을 사용한 Angular 컨트롤러 단위 테스트에서 정의되지 않았습니다.

  29. 29

    단위 테스트 서비스는 Factory를 주입하지 않습니다.

뜨겁다태그

보관