example.service.ts
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();
});
});当我试图运行测试时,我得到了TypeError:无法读取未定义的属性'get‘。我对单元测试非常陌生,但是我在这里发布了返回'get‘的单元测试文件和服务的代码。
发布于 2017-08-24 13:07:41
首先,你的服务不是服务。我真的推荐你读https://angular.io/tutorial/toh-pt6#heroes-and-http。
在这里您可以看到您需要创建一个constructor(private http: Http) { },您的http现在是未定义的。
https://stackoverflow.com/questions/45862142
复制相似问题