Ложный Документ Пожарного магазина в Жасмине - PullRequest
1 голос
/ 09 мая 2019

Я создал модульные тесты для приложения Ionic 4, которое использует AngularFirestore, но у меня нет успеха в создании макета пожарного магазина, кто-нибудь знает, как его издеваться?

Я уже попробовал spyOn(firestore.doc.prototype, 'set') Но возвращает эту ошибку <spyOn> : set() method does not exist

[...]

angularFirestoreStub = {
  doc() {
    return {
      set() {
        return Promise.resolve();
      },
    };
  },
};

TestBed.configureTestingModule({
  providers: [
    UserService,
      { provide: AngularFireAuth, useValue: angularFireAuthStub },
      { provide: AngularFirestore, useValue: angularFirestoreStub }
    ],
}).compileComponents();

beforeEach(() => {
  service = TestBed.get(UserService);
  fireAuth = TestBed.get(AngularFireAuth);
  firestore = TestBed.get(AngularFirestore);
});

[...]

it('deve salvar um perfil de usuário no Firestore', () => {
  spyOn(firestore, 'doc').and.callThrough();
  spyOn(firestore.doc.prototype, 'set');
  service.createProfile('Wk4CvT5WpPPaQBgDTiPbY3MwED52', 'userName', 'userLastName')
    .then(() => {
      expect(firestore.doc).toHaveBeenCalledWith('users/Wk4CvT5WpPPaQBgDTiPbY3MwED52');
      expect(angularFireAuthStub.doc.set).toHaveBeenCalledWith({
        firstName: 'userName', lastName: 'userLastName'
      });
    });
});

Я надеюсь, что кто-то может помочь мне с этим.

...