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' });
我正在尝试为组件方法编写单元测试,但出现此错误:
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' });