如何解决如何从角度单元测试中的异步调用访问更新的值?
我有一个像这样的Component方法:
component {
let a = 1;
parentFunc(){
const res = fromEvent(reader,'loadend').pipe()
.subscribe(()=>{
this.a =5;
});
}
}
测试用例中的代码:
it("test spec",function() {
component.parentFunc();
expect(component.a).toBe(5);
});
我正在为此编写单元测试,当我调用parentFunc时,它将在控制台中打印更新的值。
但是当我尝试访问它时,就像component.a这样的单元测试。它总是返回旧值。
验证此值的最佳方法是什么?
解决方法
问题是 a 不是组件A 的属性。因此,更新 a 的值时,您总是会获得旧值。
您应该尝试执行以下操作
component A {
a = 1;
parentFunc(){
fromEvent(reader,'loadend').pipe()
.subscribe(()=>{
this.a =5;
});
}
}
现在,如果您选中component.a
,则其值应为5
。
it('test spec',() => {
spyOn(component,'fromEvent').and.returnValue(of({}));
component.parentFunc();
expect(component.a).toEqual(5);
});
还可以在函数中使用this.a =5;
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。