Spionage auf jQuery $('...') Wahlschalter in Jasmin

Wenn es um die Bespitzelung von jQuery-Funktionen (z.B. bind, click etc) ist es einfach:

spyOn($.fn, "bind");

Das problem ist, wenn Sie wollen, um Spion auf $('...') und zurück definierten array-Elemente.

Dinge versucht, nach dem Lesen der anderen ähnliche Antworten auf SO:

spyOn($.fn, "init").andReturn(elements); //works, but breaks stuff that uses jQuery selectors in afterEach(), etc
spyOn($.fn, "merge").andReturn(elements); //merge function doesn't seem to exist in jQuery 1.9.1
spyOn($.fn, "val").andReturn(elements); //function never gets called

So, wie mache ich das? Oder wenn der einzige Weg, um Spion auf init Funktion wie kann ich "entfernen" spy-aus-Funktion, wenn ich fertig bin, so afterEach() routing nicht funktioniert.

jQuery version 1.9.1.

PROBLEMUMGEHUNG:

Der einzige Weg, ich könnte es, Arbeit so weit (hässlich):

realDollar = $;
try {
  $ = jasmine.createSpy("dollar").andReturn(elements);
  //test code and asserts go here
} finally {
  $ = realDollar;
}

InformationsquelleAutor parxier | 2014-02-27

Schreibe einen Kommentar