Wie löse ich ein Mausbewegungsereignis in einem winkligen Unit-Test aus?

Ich habe eine anglejs-Direktive implementiert, die mouse -Ereignisse verwendet. Wenn Sie auf eine Komponente klicken und die Maus nach oben oder unten bewegen, kann sich ein Wert ändern. Ich muss also wissen, wie ich ein Mausbewegungsereignis in einem Komponententest auslöse (ich verwende Karma / Jasmin). Ich hätte gerne einen Vorschlag zum Testen dieser Komponente, wenn die Maus in einem Komponententest nach oben oder unten geht.

Component Template ist ungefähr so:

<div class="rotativeContent">
    <p class="rotativeLabel">{{label}}</p>
    <pie class="zero"></pie>
    <p class="rotativeValue">{{ngModel}}</p>
    <input type="hidden" ng-model="ngModel"/>
</div>

und Javascript-Code ist:

var Component = angular.module('Components', []);

Components.directive('rotative', ['$document', function($document){
    return {
    require : '?ngModel',
    restrict: 'E',
    replace: true,
    templateUrl: "templates/rotative.html",
    scope: {label: "@", ngModel: "="},
    link: function(scope, element, attr, ngModel) {
        var value = 0;
        function bindElementMove() {
            element.bind('mousedown', function (event) {
                $document.bind('mousemove', mousemove);
                $document.bind('mouseup', mouseup);
            });
        }

        bindElementMove();

        function mousemove(event) {
            // code on mouse move
            // to track vertical mouse position
            var prevY = element.attr('data-prevY');
            if (event.pageY < prevY) {
                // do something if mouse goes down
                // ...
                value++;
            } else {
                // do something if mouse goes up
                // ...
                value--;
            } 
            element.attr('data-prevY', event.pageY);
            ngModel.$setViewValue(value);
        }

        function mouseup() {
            $document.off('mousemove', mousemove);
            $document.off('mouseup', mouseup);
        }
    }
};

// ...

Auch ich muss eine Veränderung von event.pageY simulieren. Wie kann ich das machen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage