13
我有一個簡單的測試套件,裏面有一個it
函數。我想查看某個函數,我調用函數中調用,所以我有這樣的事情:爲什麼我必須在beforeEach()中調用spyOn?
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();
});
});
然而,這給我的錯誤:Expected a spy, but got Function.
隨便看看後,我看到所有例子中的spyOn
都在beforeEach
中。於是,我改變了我的測試:
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();
});
});
而這個工作。我對茉莉花相當陌生,所以我可能會錯過一些明顯的東西,但我只想知道爲什麼它必須在beforeEach
的spyOn
工作。使用beforeEach
很容易,但我想更好地瞭解正在發生的事情。謝謝。