【发布时间】:2021-10-29 23:41:23
【问题描述】:
我有这个 observable 的单元测试:
fdescribe('goToPurchases', () => {
it('should have working NavApiService',() => {
apiService.goToPurchases(null).subscribe((res: PurchaseResponse) => {
expect(res.shimentId).toBe('not supposed to be valid!')
expect(res.url).not.toBeDefined();
});
});
});
这是 apiService.ts 中的真实方法:
public goToPurchases(shipmentId: string): Observable<Object> {
return this.httpClient.post(`${environmentVariables.loadInsurance.apiUrl}/v1/purchases`, {shipmentId});
}
真正的反应应该是这样的:
{
"id": "50d4ad69-0337-4e49-8f00-5c9a152cfad0",
"shipmentId": null,
"userId": "41ac2d3d-b2ed-4c73-9c56-25d17a9caa7e",
"url": "https://test.portal.loadsure.net/insureLoad/v2?id=TFMtREFULzIwMjEwODMxL3l6ZDVlYlJRejdrQkdKcUwxbk5l"
}
当我运行测试时它成功通过了吗?我做错了什么?
谢谢。
【问题讨论】:
-
你有一个类型
shimentId(缺少p),可能不是原因,但请仔细检查。 -
您希望进行真正的 http 调用吗?我没有看到任何使用 http 模拟的尝试....
标签: angular unit-testing jasmine karma-jasmine angular-test