gpt4 book ai didi

javascript - 如何在 aurelia 单元测试中访问 DOM 元素?

转载 作者:可可西里 更新时间:2023-11-01 02:27:25 26 4
gpt4 key购买 nike

在单元测试中,如何实例化自定义元素(或 View )并访问实时 DOM 元素?

我读了this article这到达了自定义元素被实例化的地步,但我认为我无法到达 DOM 元素。

顺便说一句,我知道 Protractor 和端到端测试,但这不是我在这里寻找的。


2016 年 10 月 14 日更新:

我发现我可以注册一个这样的实例来制作 @inject(Element)工作:

container = new Container().makeGlobal();
container.registerInstance(Element, document.createElement('div') );
vm = BehaviorInstance.createForUnitTest(Test, {}, {});

虽然注入(inject)有效(我的测试自定义元素获得了引用),但这并没有导致 aurelia 对元素做任何事情。我的自定义元素的模板尚未使用,因此元素的 innerHtml<div></div> .

最佳答案

编辑 2015 年 11 月 16 日:

我们正在探索创建使用实际 DOM 元素的集成测试的方法,因为我们为一些内置的自定义元素/属性构建了更强大的测试套件。检查 this branch 中的提交了解更多详情。


这是自定义元素的单元测试: https://github.com/aurelia/templating/blob/master/test/behavior-testing.js#L57

要访问实际的 DOM 元素,请使用 Aurelia 的依赖注入(inject)容器:

import {inject} from 'aurelia-framework';

@inject(Element)
export class MyViewModelOrCustomElementOrAttribute {
constructor(element) {
// use the element
this.element = element;
}
}

单元测试应该是这样的:

let myvm =BehaviorInstance.createForUnitTest(MyViewModelOrCustomElementOrAttribute, attributesFromHTML, bindingContext);
let actualDomElement = myvm.element;

关于javascript - 如何在 aurelia 单元测试中访问 DOM 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33048284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com