2017-03-09 16 views
3

私は、私のプロジェクトを生成するためにangular-cliを使用しました。これは私のテストの角度-CLIによって生成され、私はDIエラーを取得し、それを実行すると、ルータ、angularmaterial2とangularfire2Angular2 Karma test failed:Token FirebaseUrlのプロバイダがありません

import { async, TestBed } from '@angular/core/testing'; 
import { MaterialModule } from '@angular/material'; 
import { RouterModule } from '@angular/router'; 
import { AngularFireModule, AuthMethods, AuthProviders } from 'angularfire2'; 
import { } from 'jasmine'; 
import { AppComponent } from './app.component'; 

describe('AppComponent',() => { 
    beforeEach(async(() => { 
    TestBed.configureTestingModule({ 
     imports: [ 
     MaterialModule.forRoot(), 
     RouterModule, 
     AngularFireModule, 
     ], 
     declarations: [ 
     AppComponent, 
     ], 
     providers: [ 
     ], 
    }).compileComponents(); 
    })); 

    it('should create the app', async(() => { 
    const fixture = TestBed.createComponent(AppComponent); 
    const app = fixture.debugElement.componentInstance; 
    expect(app).toBeTruthy(); 
    })); 
}); 

を含むように更新された:失敗:トークンFirebaseUrlなしのプロバイダ! この問題を解決するにはどうすればよいですか?

+0

この問題も発生しています。私は役に立たない方法をいくつか試しました。エラー:トークンFirebaseUrlのプロバイダがありません。またはエラー:AngularFireのプロバイダがありません!またはエラー:トークンFirebaseAppNameのプロバイダがありません 私の問題も参照してください:http://stackoverflow.com/questions/42686610/angular-2-error-no-provider-for-token-firebaseappname – busyPixels

答えて

4

AngularFireModuleを設定するとこの問題が解決されました。

beforeEach(async(() => { 
const firebaseConfig = { 
    apiKey: 'xxx', 
    authDomain: 'xxx', 
    databaseURL: 'xxx', 
    storageBucket: 'xxx', 
    messagingSenderId: 'xxx', 
}; 

TestBed.configureTestingModule({ 
    imports: [ 
    MaterialModule.forRoot(), 
    RouterModule, 
    AngularFireModule.initializeApp(firebaseConfig), 
    ], 
    declarations: [ 
    AppComponent, 
    ], 
    providers: [ 
    ], 
}).compileComponents(); 

))));

関連する問題