jsp*_*ggs 9 karma-jasmine angular
我有一个我正在研究的Angular 2应用程序,出于与遗留代码的一些兼容性原因,需要通过应用程序组件上使用的属性获取一些信息.例如,启动angular 2应用程序的html将如下所示:
<myApp id="xyz" areaDone="true" value="" requestID="abc"> Loading ... </myApp>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试围绕应该根据这些属性的存在和值发生的行为编写一些单元测试时,它们是null/undefined.
要获取值,我们只是在构造函数中将它们拉出来,如下所示:
let native = this.elementRef.nativeElement;
this.requestID= native.getAttribute("requestID");
Run Code Online (Sandbox Code Playgroud)
那么,是否有一种方法可以通过测试平台/提供程序来强制应该具有预期属性的本机元素?
您可以调用this.elementRef.nativeElement.attribute
并返回属性的NamedNodeMap(http://www.w3schools.com/jsref/prop_node_attributes.asp).
从NamedNodeMaps获取东西的语法并不可怕,这是我在我的一个测试中从d3对象获取x1属性
const nodeAttributes = compiled.querySelector('#temp-draggable-link-line').attributes as NamedNodeMap;
expect(nodeAttributes.getNamedItem('x1').value).toEqual(200);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12207 次 |
最近记录: |