unit-testing - 如何在AngularJS单元测试中将div添加到DOM中?

标签 unit-testing angularjs directive

我在指令中使用以下代码来放置工具提示

var bodyoffset = document.querySelector(".smallcontainer-content").getBoundingClientRect();
var width = elm.width();
if(bodyoffset != undefined){
    var tooltipDiv = document.querySelector(".tooltip");
    angular.element(tooltipDiv).css("top", offset.top-bodyoffset.top+"px");
    angular.element(tooltipDiv).css("left", offset.left-bodyoffset.left+width+5+"px");
}

这在单元测试中不起作用,因为不存在“smallcontainer”类所在的div。如何确保在单元测试中创建了div,以便可以测试所有功能?

最佳答案

这是我设法做到的方式:

beforeEach(inject(
    ['$compile','$rootScope', function(_$compile_) {
        var html = '<div class="smallcontainer-content"></div>';
        angular.element(document.body).append(html);
        elm = angular.element('<form name="form"><input name="password" id="passwordInput" data-ng-model="password" size="25" type="password" maxlength="20" tabindex="1" autofocus  data-my-password-check></form>');
        $compile(elm)($rootScope);
        form = $rootScope.form;

    }]
));

在此处将html添加到文档中的重要部分是angular.element()。append()。

我在http://www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-karma.html#testing-filters的中途测试代码示例中发现了这一点

关于unit-testing - 如何在AngularJS单元测试中将div添加到DOM中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17991799/

相关文章:

javascript - Http 发布 URL 安全

android - 如何使用 Mockito 模拟和验证方法中的回调

javascript - 替代在 url 中使用 hashbangs 来解决 IE9 问题

unit-testing - Grails:模拟休眠域操作-beforeInsert

jquery - Angular JS : temporary disable animation provided by directive so it doesn't animate when the page load?

angular - 类型 'HTML Collection' 必须有一个 '[Symbol.iterator]()' 方法返回指令中的迭代器

AngularJS/Karma - 指令中的单元测试功能

assembly - 6502 : Where it is stored 中的.byte指令

c# - 如何使用 Entity Framework 和 Moq 进行单元测试?

python - 如何确保 Celery 任务在 Pytest 中排队?