如何使用mockfirebase模拟firebase进行firebase单元测试?
我使用 typescript 和 angular2 进行此单元测试。
这是我想从 firebase 更改为 mockfirebase 的测试之一:
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
类/函数一样,MockFirebase
在窗口
上可用。
您可以在 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。
Check out the documentation on authentication and MockFirebase.
关于javascript - 如何使用模拟 Firebase 进行 Angular 2 TypeScript 单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34085020/