Angular HttpClient Karma/Jasmine测试没有供应商
使用此simples.spec.ts文件: 会话服务: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
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));
}