Jasmine - 无法获得DOM元素

时间:2016-05-03 18:25:00

标签: unit-testing jasmine angular-directive

我正在测试一个操纵DOM的angularjs指令。

我试图在我的Jasmine规范中获取该元素,以便我可以测试该指令的功能。但是,当我使用document.getElementsByClassNameTagNameID时,它不会返回任何内容。有没有人有这方面的想法?

html = document.getElementsByClassName('analog');
console.dir(html);

1 个答案:

答案 0 :(得分:0)

如果您在无头浏览器/ chrome等中创建测试,则可以附加一个虚拟对象,例如JQuery节点,然后在afterEach中删除该节点。

E.g。

beforeEach(() => {
    var mockHtml = $('<div class="form-group" style="position: absolute;left: -10000px;"><input class="testInput" id="some_input"></div>');
    $('body').append(mockHtml);
});

afterEach(() => {
    $('.form-group').remove();
});