Тестирование FileSaver в Angular 5

Я импортировал файловую заставку в приложение angular 5, когда я выполняю тестовые примеры, он дает следующую ошибку:

TypeError: FileSaver.saveAs is not a function

Spec.ts:
import FileSaver from 'file-saver';

.ts
import FileSaver from 'file-saver';
FileSaver.saveAs(blob, filename);

Как имитировать файловую систему в тестовых примерах.

распечатайте FileSaver с console.info и проверьте, существует ли функция saveAs в его прототипе

Radonirina Maminiaina 25.03.2018 20:42

Это может быть полезно: stackoverflow.com/questions/44686077/…

R. Richards 25.03.2018 20:46

@RadonirinaMaminiaina Когда я консоль FileSaver консолью, он "не определен". Я новичок в Angular 2 Testing, не могли бы вы сообщить мне, как я могу получить FileSaver в Spec.ts

Sreekanth Reddy 25.03.2018 21:54

Попробуйте, это работает для меня. "импортировать {saveAs} из файловой заставки / FileSaver";

Gavishiddappa Gadagi 26.03.2018 08:25
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
5
4
3 747
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это работает в Angular 7, поэтому я предполагаю, что это будет работать в NG5. Во-первых, необходимо импортировать FileSaver, используя синтаксис as как в компоненте, так и в спецификации:

import * as FileSaver from 'file-saver';

Затем в спецификации beforeEach:

spyOn(FileSaver, 'saveAs').and.stub();

Похоже, это (внезапно) перестало работать для меня как механизм заглушки метода saveAs. Кто-нибудь еще наблюдал что-то подобное?

James Robinson 24.05.2021 12:43

Другие вопросы по теме