Ich habe eine einfache Testsuite, die eine it
Funktion darin hat. Ich möchte sehen, ob eine bestimmte Funktion innerhalb der Funktion aufgerufen wird, ich rufe, so habe ich so etwas wie dieses:Warum muss ich in einem beforeEach() spyOn aufrufen?
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();
});
});
aber das gibt mir den Fehler: Expected a spy, but got Function.
Nach etwa einige suchen, Ich sah alle Beispiele die spyOn
in einer beforeEach
hatte. Also änderte ich meinen Test zu:
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();
});
});
Und das funktioniert. Ich bin ziemlich neu bei Jasmin, so dass ich vielleicht etwas offensichtliches vermisse, aber ich möchte nur wissen, warum es in einem beforeEach
für den spyOn
funktionieren muss. Es ist einfach genug, einfach die beforeEach
zu verwenden, aber ich möchte besser verstehen, was vor sich geht. Vielen Dank.