문제

ASP.NET MVC 프로젝트에서 실행되는 Angular 앱이 있습니다.

이 앱에는 다음 링크 기능이 포함된 지시문이 있습니다.

    link: function (scope, element, attrs, formCtrl) {
        element.bind('click', function (event) {
            formCtrl.$setPristine();
        });

    }

나는 이 테스트를 작성했습니다:

var $compile,
        $rootScope,
        form;

    beforeEach(module('points'));

    beforeEach(inject(function(_$compile_, _$rootScope_, testHelper){
        $compile = _$compile_;
        $rootScope = _$rootScope_;
        testHelper.expectBaseRoute();
    }));

    it('Should set form to pristine when clicked', function () {
        var scope = $rootScope;

        form = $compile('<form name="testForm" unsaved-warning-clear><input name="test" ng-model="value"/></form>')(scope);
        scope.value = "abc";
        scope.$digest();

        scope.testForm.test.$setViewValue('def');

        expect(scope.testForm.$pristine).toBe(false);

        $(form).trigger('click');

        expect(scope.testForm.$pristine).toBe(true);
    });

Jasmine을 사용하여 브라우저에서 이를 실행하면 테스트가 통과됩니다.

내가 그것을 실행하면 chutzpah ide 내부에서는 실패합니다.결코 발사하지 않습니다 click 이벤트.

내가 놓친 것이 있나요?

도움이 되었습니까?

해결책

내 경우에는 어리석은 사용자 오류가 발생한 사건이었습니다.

브라우저에서 실행되는 내 Jasmine 테스트 실행기 파일에는 jquery가 있고 각도가 참조되었습니다.

내 chutzpah.json 파일의 순서는 반대였습니다.

jquery 참조를 위로 옮기고 작동하기 시작했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top