如何为innerHTML元素编写jasmine测试

如何为innerHTML元素编写jasmine测试,jasmine,Jasmine,所以我的代码是这样的 diff = timevalue - (((Date.now() - startDate)/1000)|0); document.getElementById("timer").innerHTML = diff.toLocaleString(); 我当前测试的一部分如下所示 it("count should define tictoc", function(){ jasmine.clock().install(); aTimer.count(25);

所以我的代码是这样的

diff = timevalue - (((Date.now() - startDate)/1000)|0);

document.getElementById("timer").innerHTML = diff.toLocaleString();
我当前测试的一部分如下所示

  it("count should define tictoc", function(){
    jasmine.clock().install();
    aTimer.count(25);
    jasmine.clock().tick(1002);
    expect(aTimer.tictoc).toEqual(1);
    expect(document.getElementById("timer").innerHtml).toBe("success");
    jasmine.clock().uninstall();
  });
但是我从茉莉花那里得到这个

“TypeError:无法将属性'innerHTML'设置为null”

现在我认为这是因为html元素不存在……这是有道理的,因为我正在测试……但是我如何模拟该元素以便测试工作?

我刚刚得到它:

  it("count should define tictoc", function(){
    jasmine.clock().install();
    var dummyElement = document.createElement('span');
    document.getElementById = jasmine.createSpy('HTML Element').and.returnValue(dummyElement);

    aTimer.count(25);
    jasmine.clock().tick(1002);
    expect(aTimer.tictoc).toEqual(1);
    expect(document.getElementById("timer").innerHTML).toEqual('25');
    jasmine.clock().uninstall();
  });

断言仅测试模拟的元素。那是你的意图吗?