2017-08-24 8 views
0

example.service.tsAngular Karma-Jasmin kann nicht Eigentum 'get' undefinierter

import { Injectable } from '@angular/core'; 
import { Http, Headers, RequestOptions, URLSearchParams, Response } from '@angular/http'; 
import { Observable } from 'rxjs/Observable'; 
import 'rxjs/Rx'; 
import { environment as ENV } from '../../environments/environment'; 
import { SharedService } from './shared.service'; 

video(id): Observable<any> { 
let sessionId = this.sharedService.sessionId(); 

return this.http.get(ENV.api_url + '&videoId=' + id) 
     .map(this.extractData) 
     .catch(this.handleError); 

}

example.service.spec.ts

import { async, ComponentFixture, TestBed } from 

'@angular/core/testing'; 
import { RouterTestingModule } from '@angular/router/testing'; 
import { Http, HttpModule } from '@angular/http'; 
import { MockBackend } from '@angular/http/testing'; 


describe('VideosComponent',() => { 
    let component: VideosComponent; 
    let fixture: ComponentFixture<VideosComponent>; 

    beforeEach(async(() => { 
    TestBed.configureTestingModule({ 
     imports: [ 
     RouterTestingModule 
     ], 
     declarations: [ VideosComponent ], 
     providers: [ 
     { 
      provide: Http, 
      deps: [MockBackend] 
     }, 
     ] 
    }) 
    .compileComponents(); 
    })); 

    beforeEach(() => { 
    fixture = TestBed.createComponent(VideosComponent); 
    component = fixture.componentInstance; 
    fixture.detectChanges(); 
    }); 

    it('should create',() => { 
    expect(component).toBeTruthy(); 
    }); 
}); 

lesen bekam ich Typeerror : Kann nicht lesen Eigenschaft 'erhalten' von undefined, wenn ich versuche, Tests auszuführen. Ich bin sehr neu in der Unit-Tests, aber ich habe den Code hier für die Unit-Test-Dateien und Service, die 'Get' zurückgibt veröffentlicht.

Antwort

0

Zunächst ist Ihr Dienst kein Service. Ich empfehle wirklich zu lesen https://angular.io/tutorial/toh-pt6#heroes-and-http.

Dort können Sie sehen, dass Sie eine constructor(private http: Http) { } machen müssen, Ihr http ist jetzt undefined.

+0

Ich weiß, aber ich habe nicht den vollen Service hier einfügen –

+0

Dann plz tun dies. – Swoox

+0

Ich denke, das Problem ist mit der Testdatei nicht der Dienst überhaupt! –

Verwandte Themen