Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular HttpClient Karma/Jasmine测试没有供应商_Angular_Karma Jasmine - Fatal编程技术网

Angular HttpClient Karma/Jasmine测试没有供应商

Angular HttpClient Karma/Jasmine测试没有供应商,angular,karma-jasmine,Angular,Karma Jasmine,使用此simples.spec.ts文件: 会话服务: import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs/Observable'; import { Session } from '../models/Session'; @Injectable() export c

使用此simples.spec.ts文件:

会话服务:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { Session } from '../models/Session';

@Injectable()
export class SessionService {

  sessionsURL = "http://localhost:8080/express/ux/sessions";
  constructor(private http: HttpClient) { }

  getSessions(user: string, pageTitle: string, deviceType: string, browser: string, beginDate: number, endDate: number, os: string, screenRes: string,company:string): Observable<Session[]> {
    return this.http.get<Session[]>(this.sessionsURL + this.buildArguments(user, pageTitle, deviceType, browser, beginDate, endDate, os, screenRes,company));
  }
它给了我那个错误。问题是,如果我将HTTPClientModule添加到规范导入中,它会正确加载,但会发出服务中的实际请求。它只是绕过了mock-getSessions方法

有什么线索吗,为什么会这样


我在另一个组件中采用了类似的方法,它很快就成功了。

对于使用HttpClientModule进行测试,Angular中有一个特殊的模块:HttpClientTestingModule。这允许您在HttpClientModule中模拟此操作,而无需执行真正的Http调用。您必须将此模块导入测试。希望能有帮助。

就是这样。解决了的!
  constructor(private es: NgxEchartsService, private sessionService: SessionService, private sorting: SortingService) { }
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { Session } from '../models/Session';

@Injectable()
export class SessionService {

  sessionsURL = "http://localhost:8080/express/ux/sessions";
  constructor(private http: HttpClient) { }

  getSessions(user: string, pageTitle: string, deviceType: string, browser: string, beginDate: number, endDate: number, os: string, screenRes: string,company:string): Observable<Session[]> {
    return this.http.get<Session[]>(this.sessionsURL + this.buildArguments(user, pageTitle, deviceType, browser, beginDate, endDate, os, screenRes,company));
  }