我一直试图窥探原始功能,但我认为我做得不对。
基于这个 SO question 的公认答案,我编写了这个规范:
testSpec.js
describe("Test:", function() {
var user = "foo";
var pass = "bar";
it("Expects login() will be called", function(){
var loginSpy = spyOn(window, 'login').andCallThrough();
login(user, pass);
expect(loginSpy).toHaveBeenCalled();
});
});
现在我的测试当然通过了。但是当我删除这条线时login(user, pass),测试失败了。我已经用andCallThrough(). 现在test.js我在打电话login(user, pass),document.ready所以我猜它被称为。但是我仍然对如何监视脚本login()中实际正在执行的函数感到困惑。test.js我不认为即使有andCallThrough()它是在监视login()现在test.js。我有什么遗漏吗?