Javascript 如何在aurelia单元测试中访问DOM元素?
在单元测试中,如何实例化自定义元素(或视图)并获得对活动DOM元素的访问权 我读到了自定义元素被实例化的地方,但我认为我无法访问DOM元素 顺便说一句,我知道量角器和端到端测试,但这不是我在这里要找的Javascript 如何在aurelia单元测试中访问DOM元素?,javascript,aurelia,Javascript,Aurelia,在单元测试中,如何实例化自定义元素(或视图)并获得对活动DOM元素的访问权 我读到了自定义元素被实例化的地方,但我认为我无法访问DOM元素 顺便说一句,我知道量角器和端到端测试,但这不是我在这里要找的 2016年10月14日更新: 我发现我可以注册这样一个实例,使@inject(Element)工作: container = new Container().makeGlobal(); container.registerInstance(Element, document.createElem
2016年10月14日更新: 我发现我可以注册这样一个实例,使
@inject(Element)
工作:
container = new Container().makeGlobal();
container.registerInstance(Element, document.createElement('div') );
vm = BehaviorInstance.createForUnitTest(Test, {}, {});
尽管注入工作正常(我的测试自定义元素得到了引用),但这并没有导致aurelia对该元素做任何事情。我的自定义元素的模板尚未使用,因此该元素的innerHtml
为
编辑2015年11月16日:
我们正在探索创建使用实际DOM元素的集成测试的方法,为一些内置的自定义元素/属性构建更健壮的测试套件。有关更多详细信息,请签出中的提交
下面是自定义元素的单元测试: 要访问实际的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;
谢谢您指给我的单元测试没有使用
元素
。如果我试图像在您的示例中那样注入元素
,那么当aurelia试图在BehaviorInstance.createForUnitTest()
期间通过调用元素()
构造函数来实例化元素
类型的对象时,我会遇到一个错误。如果我在测试的第一行设置一个断点,并在控制台中执行Element()
,我会得到与aurelia相同的错误:`Uncaught TypeError:非法构造函数`。嗯-我认为这应该可以工作-会做一些研究,然后返回给您。查看Jasmine JQuery,您可以使用setfixture来创建一些UI:根据Aurelia核心团队成员的说法,这还不受支持。看见