如何在aurelia单元测试中访问DOM元素
How to access the DOM Element in an aurelia unit test?
在单元测试中,我如何实例化自定义元素(或视图)并访问活动的 DOM元素?
我读了这篇文章,这篇文章谈到了实例化自定义元素的点,但我认为我不能得到DOM元素。
顺便说一句,我知道量角器和端到端测试,但这不是我在这里寻找的。
2016年10月14日更新:
我发现我可以像这样注册一个实例来使@inject(Element)
工作:
container = new Container().makeGlobal();
container.registerInstance(Element, document.createElement('div') );
vm = BehaviorInstance.createForUnitTest(Test, {}, {});
虽然注入工作(我的Test自定义元素获得引用),但这并没有导致aurelia对元素做任何事情。我的自定义元素的模板没有被使用,因此元素的innerHtml
是<div></div>
。
2015年11月16日编辑:
我们正在探索创建使用实际DOM元素的集成测试的方法,因为我们为一些内置的自定义元素/属性构建了一个更健壮的测试套件。查看此分支中的提交以获取更多详细信息。
下面是一个自定义元素的单元测试:https://github.com/aurelia/templating/blob/master/test/behavior-testing.js L57
访问实际的DOM元素,使用Aurelia的依赖注入容器:
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;
相关文章:
- 从popup.js|Chrome扩展访问DOM
- React:是否可以访问DOM元素's道具
- Meteor - 从另一个模板事件处理程序访问 DOM 元素
- react-在不破坏封装的情况下访问DOM
- 通过访问DOM添加功能
- 如何通过知道节点的值来访问dom&&只要知道价值就可以得到手风琴的索引
- 动态加载页面后无法访问 dom 树
- 无法访问 DOM 元素
- 访问 DOM 树中的特定字段
- 为什么通过缓存变量访问 DOM 更快
- 如何在上一次 JQuery 调用后访问 DOM
- 如何在 React 应用程序中不可用的函数中访问 DOM 元素
- 通过jQuery访问DOM元素
- 浏览器化:从脚本访问 dom 元素
- 斯宾纳 - 访问 DOM
- 我们可以在不将其加载到无限可滚动网页中的情况下访问 DOM 元素吗?
- 从 JavaScript 访问 DOM 元素并向其发送事件
- Firefox 扩展:在加载之前访问 DOM
- d3.js 在就绪文档上访问 DOM
- 通过 ID 访问 DOM 元素