javascript – 使用角度2添加firebase的单元测试

前端之家收集整理的这篇文章主要介绍了javascript – 使用角度2添加firebase的单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有没有人知道如何使用角度2来测试基本的firebase添加项目进行基本单元测试.

我的代码使用的是typescript而不是基本的JavaScript

这就是我正在测试的:

 export class AppComponent {
     ref: Firebase;
     refUsers: Firebase;
     refProfiles: Firebase;

     constructor(){
         this.ref = new Firebase("https://markng2.firebaseio.com");
         this.refUsers = new Firebase("https://markng2.firebaseio.com/users");
         this.refProfiles = new Firebase("https://markng2.firebaseio.com/profiles");    
     }

     public addUser(newUser: Object): void{     
         this.refUsers.push(newUser,()=>{

         });
     }
 }

这是我目前的测试:

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

 describe('AppComponent',() => {

     it('saves an item to Firebase',() => {
         let refUsers = new Firebase('');

         let service = new AppComponent();

         spyOn(service.refUsers,'push');
         service.addUser({ item: true });

         expect(service.refUsers.push).toHaveBeenCalled();
     })

 });

这是我在运行测试时遇到的错误

enter image description here

最佳答案
开始测试的三个步骤.

> Setup your testing environment. Angular 2文档有很好的指导.
>编写代码.
>写下测试.

假设您创建了一个名为DataService的类:

/// 

要测试它,您可以导入DataService并使用Jasmine方法来测试add方法.

import {DataService} from './data-service';

describe('DataService',() => {

    it('saves an item to Firebase',() => {
        let ref = new Firebase('');
        let service = new DataService(ref);
        // create a spy to use if push is called
        spyOn(service.ref,'push');
        service.add({ item: true });
        // expect that push was called
        expect(service.ref.push).toHaveBeenCalled();
    })

});

测试Firebase方法的关键只是为了监视它们.您无需测试Firebase是否有效,只需要您的代码正确调用Firebase即可.

这里的问题是您在单元测试中使用完整的Firebase SDK.理想情况下,您需要使用模拟库,因此您可以根据Firebase SDK中所需的任何功能创建模拟.

猜你在找的JavaScript相关文章