簡體   English   中英

我如何在我的angular2打字稿單元測試中使用嘲笑庫?

[英]How do I use mockfirebase for my angular2 typescript unit test?

您如何使用模擬firebase模擬firebase進行firebase單元測試?

我正在為此單元測試使用打字稿和angular2。

這是我要從firebase更改為模擬firebase的測試之一:

 import { it, iit, describe, expect, inject, injectAsync, beforeEachProviders, fakeAsync, tick } from 'angular2/testing';
 import { FirebaseService } from '../app/firebase-service';

 describe('Firebase Service Calls', () => {

      it('log out user from Firebase', () => {
          let ref = new Firebase("https://markng2.firebaseio.com");
          let service = new FirebaseService();

          spyOn(service.ref, 'unauth');
          service.logOut();

          expect(service.ref.unauth).toHaveBeenCalled();
      })

 });

我想更改此行:“ let ref = new Firebase(” https://markng2.firebaseio.com “);”

Firebase類/函數一樣, MockFirebasewindow可用。

您可以在beforeEach函數或固定裝置中使用MockFirebase.override()

describe('Firebase Service Calls', () => {

      beforeEach(() => MockFirebase.override());

      it('log out user from Firebase', () => {
          let ref = new Firebase("https://markng2.firebaseio.com");
          ref.unauth();
          ref.flush(); // flush out the async action
          expect(ref.getUser()).toEqual(null);
      });
 });

驗證用戶身份后,調用ref.getUser()將返回當前用戶。 上面的測試檢查了注銷用戶時ref.getUser()返回的值是否為null。

查看有關身份驗證和MockFirebase的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM