Syl*_*ain 11 javascript aurelia
在单元测试中,如何实例化自定义元素(或视图)并访问实时 DOM元素?
我读到了这篇文章,它实现了自定义元素的实例化,但我认为我无法访问DOM元素.
顺便说一下,我知道Protractor和端到端测试,但这不是我在这里寻找的.
2016年10月14日更新:
我发现我可以注册这样的实例来完成@inject(Element)工作:
container = new Container().makeGlobal();
container.registerInstance(Element, document.createElement('div') );
vm = BehaviorInstance.createForUnitTest(Test, {}, {});
Run Code Online (Sandbox Code Playgroud)
虽然注入工作(我的测试自定义元素得到参考),但这并没有导致aurelia对元素做任何事情.我的自定义元素的模板尚未使用,因此元素innerHtml是<div></div>.
当我们为一些内置的自定义元素/属性构建更强大的测试套件时,我们正在探索创建使用实际 DOM 元素的集成测试的方法。查看此分支中的提交以获取更多详细信息。
这是自定义元素的单元测试: https://github.com/aurelia/templated/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;
}
}
Run Code Online (Sandbox Code Playgroud)
单元测试会有这样的内容:
let myvm =BehaviorInstance.createForUnitTest(MyViewModelOrCustomElementOrAttribute, attributesFromHTML, bindingContext);
let actualDomElement = myvm.element;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1042 次 |
| 最近记录: |