使用angular 2添加Firebase的单元测试

角度M

有谁知道如何使用angular 2进行基本的单元测试来测试基本的firebase添加项。

我在代码中使用打字稿而不是基本的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();
     })

 });

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

在此处输入图片说明

东大卫

开始测试的三个步骤。

  1. 设置您的测试环境Angular 2文档对此有很好的指导。
  2. 编写您的代码。
  3. 编写测试。

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

/// <reference path="typings/firebase/firebase.d.ts" />

export class DataService {
    ref: Firebase;
    constructor(theRef: Firebase) {
        this.ref = theRef;
    }
    add(object: any) {
        this.ref.push(object);
    }
}

要对其进行测试,可以导入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中所需的任何功能创建一个模拟。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular 2单元测试

来自分类Dev

使用Firebase进行单元测试

来自分类Dev

使用Firebase的组件的Java单元测试

来自分类Dev

组件的 Angular 2 单元测试

来自分类常见问题

使用@Input()进行Angular2单元测试

来自分类Dev

使用 DarkSkyApi 调用进行 Angular 2 服务单元测试

来自分类Dev

在Angular单元测试中使用Modernizr

来自分类Dev

使用Moq对dbContext进行单元测试添加操作

来自分类Dev

Angular 2和带有服务的单元测试

来自分类Dev

Angular2单元测试+创建接口对象

来自分类Dev

Angular2在单元测试中注入ElementRef

来自分类Dev

在Angular 2中对可观察对象进行单元测试

来自分类Dev

如何在Angular 2中对指令进行单元测试?

来自分类Dev

Angular 2单元测试组件,模拟ContentChildren

来自分类Dev

对需要Electron的Angular2服务进行单元测试

来自分类Dev

Angular 2和带有服务的单元测试

来自分类Dev

Angular2 单元测试 Click() 与按键

来自分类Dev

Angular 单元测试服务

来自分类Dev

单元测试 Angular 服务

来自分类Dev

使用业力和Jasmin在Angular2单元测试中未加载TemplateUrl

来自分类Dev

Angular2-使用PhantomJS运行单元测试时出现配置错误

来自分类Dev

使用 jasmine 运行 angular2 单元测试时调用服务时出错

来自分类Dev

使用Mockito进行Retrofit 2 api调用的单元测试

来自分类Dev

Symfony2:使用sqlite进行单元测试

来自分类Dev

使用MEF2 ExportFactories进行单元测试

来自分类Dev

使用React Router 2进行单元测试路由匹配

来自分类Dev

使用Factory对Zend Framework 2模块进行单元测试

来自分类Dev

使用Dagger 2进行Android单元测试

来自分类Dev

使用CodeCeption的Zend Framework 2单元测试

Related 相关文章

热门标签

归档