我想遍历DebugElements以确保元素描述的对象具有某些属性。例如,我可能希望确保显示器仅显示今天预约的患者,而不是可用的完整患者列表。
如何从调试元素访问范围数据?
例如:
注意:在下面的代码中,page
变量包经常将调试元素搜索到单个类中。在这种情况下,它为同一列表组件的两个实现提供调试元素,每个列表组件根据与此问题无关的标准显示不同的患者列表。
it( "lists zero patients from other staff members that the staff member who is logged in", ()=>{
var element : DebugElement, list : any;
var user : string = component.credentials.username;
var notMyPatientCount : number = 0;
for (list of [page.primaryPatients, page.patientBacklog] ){
for( element of list ){
var patient = /* I need something to put here to extract the PatientSummary object that is displayed in this element */;
}
}
expect( notMyPatientCount ).toBe( 0, "When filtered, the display only holds patients assigned to the current user." );
});
答案 0 :(得分:1)
测试页面包含DebugElement(click here for DebugElement API)的API参考。
之前我曾查看过这个文档,但是我错过了名为“componentInstance”的属性是指附加到debug元素而不是测试范围的组件实例。
要访问DebugElement中使用的PatientSummary对象,我使用了以下代码:
/**
*
* @Component( ... )
* export class PatientListItemComponent {
* ...
* patientSummary : PatientSummary;
* ...
* }
*
*/
var component : PatientListItemComponent = element.componentInstance;
var patient : PatientSummary = component.patientSummary;