2017-08-24 41 views
0

example.service.ts的特性 'GET'角噶茉莉花无法读取未定义

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(); 
    }); 
}); 

类型错误:当我试图运行测试时,无法读取未定义的属性'get'。 我对单元测试非常陌生,但是我在这里发布了代码,用于返回“get”的单元测试文件和服务。

回答

0

首先你的服务没有服务。 我真的推荐阅读https://angular.io/tutorial/toh-pt6#heroes-and-http

在那里你可以看到你需要做一个constructor(private http: Http) { },你的http现在是undefined

+0

我知道,但我没有在这里贴满全部服务 –

+0

然后plz这样做。 – Swoox

+0

我认为问题在于测试文件而非服务! –