как проверить методы пожарного депо - PullRequest
0 голосов
/ 09 января 2019

У меня есть следующая проблема:

Я хочу протестировать следующие методы, которые используют Firestore:

databaseService.ts

import {Injectable} from '@angular/core';
import {AngularFirestore} from '@angular/fire/firestore';

@Injectable({
  providedIn: 'root'
})

export class DatabaseService {
  constructor(private afs: AngularFirestore) {
  }

  pushToDatabase(subject: string, key: string, object: Object): void {
    this.afs.collection(subject).doc(key).set(JSON.parse(JSON.stringify(object)));
  }

  async getData(subject: string, key: string): Promise<firebase.firestore.DocumentData> {
    const document = await this.afs.collection(subject).doc(key).ref.get();
    return document.data();
  }
  async deleteData(subject: string, key: string) {
    return await this.afs.collection(subject).doc(key).delete();
  }
}

databaseService.spec.ts

import {TestBed} from '@angular/core/testing';
import {DatabaseService} from './database.service';
import {AngularFirestore, AngularFirestoreModule} from '@angular/fire/firestore';
import {LoginComponent} from '../../components/login/login.component';
import {HttpClientTestingModule} from '@angular/common/http/testing';
import {InjectionToken} from '@angular/core';
import {AngularFireModule} from '@angular/fire';
import {async} from 'q';
import {AuthService} from '../auth/auth.service';
import {Router} from '@angular/router';
import {GithubService} from '../github/github.service';

export class AngularFirestoreMock {
}

describe('DatabaseService', () => {

  let sut: DatabaseService;
  let angularFireStore: AngularFirestore;

  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [DatabaseService, AngularFirestore]
    });

    TestBed.overrideComponent(LoginComponent, {
      set: {
        providers: [
          {provide: AngularFirestore, useClass: AngularFirestoreMock}
        ]
      }
    });

    sut = TestBed.get(DatabaseService);
    angularFireStore = TestBed.get(AngularFirestore);

  });

  describe('#pushToDatabase', async () => {
    it('should push data', function () {

    });
  });
});

Но я не знаю с чего начать. Я нашел и установил библиотеку firestore-mock . Но даже с этой библиотекой я не знаю, как поступить.

Может ли кто-нибудь мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...