Ho una semplice suite di test che ha una funzione it
al suo interno. Voglio vedere se una certa funzione viene chiamata all'interno della funzione sto chiamando, quindi non ho qualcosa di simile:Perché devo chiamare spyOn in beforeAach()?
describe("doStuff", function() {
var foo = new Foo();
spyOn(foo, "doOtherStuff");
foo.doStuff(true);
it("should do stuff and other stuff", function() {
expect(foo.stuffDone).toBe(true);
expect(foo.doOtherStuff).toHaveBeenCalled();
});
});
Tuttavia, questo mi dà l'errore: Expected a spy, but got Function.
Dopo aver cercato un po ', Ho visto tutti gli esempi con spyOn
in un beforeEach
. Quindi, ho cambiato il mio test in:
describe("doStuff", function() {
var foo = new Foo();
beforeEach(function() {
spyOn(foo, "doOtherStuff");
foo.doStuff(true);
});
it("should do stuff and other stuff", function() {
expect(foo.stuffDone).toBe(true);
expect(foo.doOtherStuff).toHaveBeenCalled();
});
});
E questo funziona. Sono abbastanza nuovo per il gelsomino, quindi potrei semplicemente mancare qualcosa di ovvio, ma voglio solo sapere perché deve essere in un beforeEach
per il spyOn
per funzionare. È abbastanza facile usare semplicemente lo beforeEach
, ma voglio capire meglio cosa sta succedendo. Grazie.