Угловой Карма-Жасмин Невозможно прочитать свойство 'get' из неопределенного

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'.

1 ответ

Прежде всего, ваш сервис не является сервисом. Я действительно рекомендую прочитать https://angular.io/tutorial/toh-pt6.

Там вы можете увидеть, что вам нужно сделать constructor(private http: Http) { }Ваш http теперь не определен.

Другие вопросы по тегам