Pass mock-DOM-Ereignis-Richtlinie-handler ohne jQuery
Habe ich eine sehr einfache Richtlinie, deren Zweck es ist, einfach zu kündigen, die dragstart
Veranstaltung:
link: function(scope, element) {
element.on('dragstart', function(e) {
e.preventDefault();
})
}
Wie kann ich dies testen, in ein Jasmin-test? Ich habe den folgenden test, der versucht, den Spion auf ein Ereignis-Objekt, und übergeben es an den handler:
var mockEvent;
beforeEach(function() {
mockEvent = new Event('dragstart');
spyOn(mockEvent,'preventDefault');
});
it('should call preventDefault', function () {
element.triggerHandler('dragstart', mockEvent);
expect(mockEvent.preventDefault).toHaveBeenCalled();
});
Aber der test schlägt fehl. Sie können siehe in diesem Plunker.. Wie kann ich dies testen (/umgestalten der Richtlinie zu machen es getestet)?
Edit: im Idealfall, ohne jQuery.
Edit: geändert tags
InformationsquelleAutor Michal Charemza | 2014-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie jquery und erstellen Sie ein jquery-event-Objekt. dieses Objekt kann leicht weitergegeben werden:
habe ich dieses jquery-version in Ihrem plunkr: //ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
element.triggerHandler(mockEvent); nicht-element.triggerHandler('dragstart' ,mockEvent);
Ah, das funktioniert, einschließlich der Veränderung der
$.Event
zunew Event
, wie gesehen werden kann auf plnkr.co/Bearbeiten/2LrrEBjVjftXH5ueprLI?p=Album Vorhören. Gibt es eine Möglichkeit, dies zu tun, ohne jQuery?ich denke nicht. jqLite zu sein scheint, zu hell...
Dies sollte akzeptiert werden, so die Antwort.
InformationsquelleAutor michael
In der aktuellen stable-version des Kantigen, 1.3.14, Sie können dies tun, ohne dass jQuery durch die übergabe der Ereignis-als erste und einzige parameter des
triggerHandler
, also anstelle von dem, was vorgeschlagen wurde, in der Frageschreiben Sie
Hinzufügen, um einen Spion auf der
preventDefault
Funktion, gemäß der ursprünglichen Frage, können Sie Folgendes tunKönnen Sie sehen diese Arbeit in dieser Plunker. Sie können alternativ auch nur mit einem einfachen Objekt mit mindestens einem
type
Schlüssel, also in diesem Fallgesehen werden kann die Arbeit in diesem Plunker
Ich glaube, das wurde Hinzugefügt, um den 1.3-Zweig in diese verpflichten.
Fühlen Sie sich frei, um Sie zu Bearbeiten!
InformationsquelleAutor Michal Charemza