测试 FileReader onerror 处理

时间:2021-01-20 09:25:02

标签: angular jasmine filereader onerror

我想测试以下功能。

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,但它没有正确的答案。我尝试将 nullundefined 发送到函数中,但这在之前引发了异常,并且在我对可观察对象的错误部分的模拟中没有被捕获

0 个答案:

没有答案