我想测试以下功能。
loadFromLocal(file:File) : Observable<any> {
let content:string;
const reader: FileReader = new FileReader();
reader.readAsText(file);
return new Observable<any>(observer => {
reader.onloadend = ()=> {
content = JSON.parse(reader.result as string);
observer.next(content);
observer.complete();
};
reader.onerror = (error):void => {
observer.error(error);
}
})
}
onloadend
我可以这样测试:
it('should load local file',() => {
const demoContent = '{"content":"example"}'l
const demoFile = new File([demoConent],'file.json',{type: 'application/json'});
service.loadFromLocal(demoFile).subscribe( res => {
expect(res).toEqual(JSON.parse(demoContent));
});
});
我的问题是,我如何测试它的 onerror
部分?我看到了 this question,但它没有正确的答案。我尝试将 null
或 undefined
发送到函数中,但这在之前引发了异常,并且在我对可观察对象的错误部分的模拟中没有被捕获