Jasmine:测试使用浏览器对象的函数

时间:2015-07-06 02:33:21

标签: unit-testing jasmine

我试图用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.
  });
});

0 个答案:

没有答案
相关问题