Unit testing 对aurelia自定义元素进行单元测试

Unit testing 对aurelia自定义元素进行单元测试,unit-testing,aurelia,Unit Testing,Aurelia,我正在用视图测试一个简单的折叠自定义元素: 和视图模型: 导出类折叠{ 折叠:布尔; 切换(){ this.collapsed=!this.collapsed; } } 我的测试是这样的: it('should show content on flag change',done=>{ 创建(引导)。然后(()=>{ const div=document.getElementsByTagName('div')[1]; const style=window.getComputedStyle(d

我正在用视图测试一个简单的折叠自定义元素:


和视图模型:

导出类折叠{
折叠:布尔;
切换(){
this.collapsed=!this.collapsed;
}
}

我的测试是这样的:

it('should show content on flag change',done=>{
创建(引导)。然后(()=>{
const div=document.getElementsByTagName('div')[1];
const style=window.getComputedStyle(div);
expect(style.display).toBe('none');
component.viewModel.toggle();
设置超时(()=>{ expect(style.display).toBe('block'); 完成(); }, 0); }); });

我能以某种方式去掉setTimeout吗?

it('应该在标志更改时显示内容',完成=>{
let div:htmldevelment;
创建(引导)
.然后(()=>{
div=document.querySelector('div');
const style=window.getComputedStyle(div);
expect(style.display).toBe('none');
component.viewModel.toggle();
})
.然后(()=>{
const style=window.getComputedStyle(div);
expect(style.display).toBe('block');
})
.然后(完成);
});
});
it('应在标志更改时显示内容',完成=>{
let div:htmldevelment;
创建(引导)
.然后(()=>{
div=document.querySelector('div');
const style=window.getComputedStyle(div);
expect(style.display).toBe('none');
component.viewModel.toggle();
})
.然后(()=>{
const style=window.getComputedStyle(div);
expect(style.display).toBe('block');
})
.然后(完成);
});
});

它不工作。仅当包装在setTimeout中时有效:。然后(()=>{setTimeout(()=>{const style=window.getComputedStyle(div);expect(style.display).toBe('block');},0);})它不起作用。仅当包装在setTimeout中时有效:。然后(()=>{setTimeout(()=>{const style=window.getComputedStyle(div);expect(style.display).toBe('block');},0);})