質問

私はAngular Appを持っています(ASP.NET MVCプロジェクトから実行しています。)

このアプリでは、次のリンク機能との指令があります。

    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を使用してブラウザで実行した場合、テストはパスです。

IDE内部のchutzpahで実行した場合、失敗します。それはclickイベントを起動することはありません。

私が欠けているものはありますか?

役に立ちましたか?

解決

私の場合は、愚かなユーザーエラーの事件でした。

ブラウザから実行されているJasmine Test RunnerファイルはjQueryを持っていたので、角度参照しました。

私のchutzpah.jsonファイルはそれを逆の順序でした。

jQuery基準を引いて作業を開始しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top