我试图用Jasmine测试这个函数:
myFunc: function () {
var name = document.getElementById("bob");
display.innerHTML = name;
return 100;
}
测试失败,ReferenceError: document is not defined
。我知道我没有在浏览器中运行测试,所以文档没有定义。但是如何嘲笑它是不是有效?有没有办法只用独立的Jasmine编写这个测试?
通常如何测试这些类型的函数(与DOM混合的JavaScript)?我不想使用其他库/框架。
// Mock, stub dom object.
var document;
beforeEach(function () {
document = jasmine.createSpyObj('document', ['getElementById', 'createElement']);
});
describe("myFunc", function () {
it("return 100", function () {
console.log(document); // My mock document object successfully logs.
expect(myFunc()).toEqual(100); // but document isn't defined in here.
});
});