Es gibt ein benutzerdefiniertes Ereignis in FooView
..
Die zugehörige FooController
bindet einen Handler, der sich um das Ereignis kümmert ...
Um die Ereignisbehandlung zu testen, würde ich den folgenden Test für Jasmine schreiben:
%Vor%Obwohl der Test fehlschlägt ..
%Vor%Scheitert der Test, weil das Ereignis länger als erwartet dauert?
Das Problem besteht darin, dass Sie eine Funktion ausspionieren, nachdem die Funktion an das Ereignis gebunden wurde. Wenn Jasmin einen Spion erstellt, ersetzt er die Funktion, die Sie ausspionieren, durch eine andere Funktion.
Was hier passiert, ist, dass die ursprüngliche Funktion an das Ereignis gebunden ist
%Vor% Danach wird die ursprüngliche Funktion durch den Spion ersetzt, aber das hat keine Auswirkungen auf die Funktion, die Sie an die Funktion bind
übergeben.
Die Lösung dafür besteht darin, FooController.prototype.onSomethingHappened
zu erkennen, bevor Sie eine neue Instanz erstellen:
Tags und Links javascript asynchronous jasmine javascript-events spy