首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角8测试-未找到Devextreme子节点

角8测试-未找到Devextreme子节点
EN

Stack Overflow用户
提问于 2019-07-09 10:58:15
回答 1查看 848关注 0票数 1

我想测试一个角度为8的Devextreme。下面是我的设置大致如下:

代码语言:javascript
复制
<dx-data-grid id="grid" [dataSource]="data">
  <dxo-state-storing [enabled]="true" type="localStorage" storageKey="storage-key"></dxo-state-storing>
  <dxi-column dataField="field1"></dxi-column>
  <dxi-column dataField="field2"></dxi-column>
</dx-data-grid>

测试

代码语言:javascript
复制
describe('MyComponent', () => {
    let component: MyComponent;
    let fixture: ComponentFixture<MyComponent>;
    let dxGrid: DxDataGridComponent;
    let dxGridElement: DebugElement;

    beforeEach(async(() => {/* ... */}).compileComponents();
    }));

    beforeEach(() => {
        fixture = TestBed.createComponent(MyComponent);
        component = fixture.componentInstance;
        fixture.detectChanges();
    });

    beforeEach(() => {
        component.data= mockData;
        fixture.detectChanges();
    });

    beforeEach(() => {
        dxGridElement = fixture.debugElement.query(By.css('#grid'));
        dxGrid = <DxDataGridComponent>dxGridElement.componentInstance;
        dxGrid.instance.option('loadingTimeout', undefined);
        dxGrid.instance.getDataSource().load();
        fixture.detectChanges();
    });

    it('should render the table rows', () => {
        const rows = fixture.debugElement.queryAll(By.css('tr.dx-data-row'));
        // rows is not defined
        expect(rows.length).toBe(mockData.length);
    });

});

没有定义rows,尽管Karma测试在测试浏览器中正确地呈现行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-11 05:46:00

我最终通过尝试和错误使它发挥作用:

代码语言:javascript
复制
<dx-data-grid id="grid" [dataSource]="data">
  <dxi-column dataField="field1"></dxi-column>
  <dxi-column dataField="field2"></dxi-column>
</dx-data-grid>

类型标

代码语言:javascript
复制
describe( 'MyComponent', () => {
    let component: MyComponent;
    let fixture: ComponentFixture<MyComponent>;

    beforeEach( async( () => { /* ... */ } ) );

    beforeEach( () => {
        fixture = TestBed.createComponent( MyComponent);
        component = fixture.componentInstance;
        fixture.detectChanges();
    } );


    it( 'should list and render all items', () => {
        component.items = mockItems;
        component.selectedItems = [];
        fixture.detectChanges();

        const dxGridElement = fixture.debugElement.query( By.css( '#grid' ) );
        dxGridElement.componentInstance.instance.option( 'loadingTimeout', undefined );
        dxGridElement.componentInstance.instance.getDataSource().load();
        const dataSource: Item[] = dxGridElement.componentInstance.dataSource as Item[];
        const rows = dxGridElement.nativeElement.querySelectorAll( 'tr.dx-data-row' );

        expect( dataSource.length ).toBe( mockItems.length );
        mockItems.forEach( i => expect( dataSource ).toContain( i ) );
        expect( rows.length ).toBe( mockItems.length );
    } );

} );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56951043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档