Angular 12 单元测试:无法在 'FormData' 上执行 'append':参数 2 不是 'Blob' 类型

Angular 12 unit test: Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'

我正在尝试为组件方法编写单元测试,但出现此错误:

TypeError:无法在 'FormData' 上执行 'append':参数 2 不是 'Blob' 类型。

我找不到适合我的答案。

方法:

  public changeProfilePicture(image: File) {
    let formData: FormData = new FormData();
    formData.append('file', image, image.name);
    this.store.dispatch(ProfilePictureActions.update({ formData, userId: this.userId }));
  }

单元测试:

  it('changed profile picture', () => {
    const mockStoreSpy = spyOn(mockStore, 'dispatch');

    const blobImage: Blob = new Blob(['image'] , { type: 'image/jpg' });
    const image: File = { ...blobImage, name: 'pictureName.jpg', lastModified: 1 };
    let formData: FormData = new FormData();
    formData.append('file', <Blob>image, image.name);

    component.changeProfilePicture(image);
    expect(mockStoreSpy).toHaveBeenCalledWith(ProfilePictureActions.update({ formData, userId }));
  });

这解决了我的问题。

const image: File = new File([blobImage], 'pictureName.jpg', { type: 'image/jpg' });