angular - DataService遇到声明异常FAILED-Angular Unit testing
问题描述
我正在为服务层进行单元测试。但我收到一个错误,例如 DataService 遇到声明异常 FAILED data.service.ts
data: Data[];
private url = "http://localhost:8080/getdata";
constructor(
private http: HttpClient,
private processHTTPMsgService: ProcessHTTPMsgService
) {}
getData(): Observable<Data[]> {
return this.http
.get<Data[]>(this.url)
.pipe(map(data => (this.data = data)))
.pipe(catchError(this.processHTTPMsgService.handleError));
}
data.service.spec.ts
describe("DataService", () => {
let service: DataService;
let httpMock: HttpTestingController;
beforeEach(
() =>
TestBed.configureTestingModule({
imports: [HttpClientTestingModule, HttpClientModule],
providers: [DataService,ProcessHTTPMsgService]
}),
(service = TestBed.get(DataService))(
(httpMock = TestBed.get(HttpTestingController))
)
);
afterEach(() => {
httpMock.verify();
});
describe("should retrieve data from the API", () => {
const dummyPosts: Data[] = [
{
effectivefrom: "string",
effectiveto: "string",
externalname: "string",
id: 1,
type: "string",
name: "string",
processstep: 1,
status: "string"
}
];
service.getData().subscribe(data => {
expect(data.length).toBe(1);
expect(data).toEqual(dummyPosts);
});
const request = httpMock.expectOne('http://localhost:8080/getdata');
expect(request.request.method).toBe("GET");
request.flush(dummyPosts);
});
describe("should be created", () => {
const service: DataService = TestBed.get(DataService);
expect(service).toBeTruthy();
});
});
我得到的错误是
DataService 遇到声明异常
错误:无法从同步测试中调用 Promise.then。
提前致谢!