gpt4 book ai didi

angular - @angular/common/http/testing TestRequest.flush 一个 boolean 值

转载 作者:行者123 更新时间:2023-12-03 23:37:23 25 4
gpt4 key购买 nike

我想测试将返回 true 的端点的使用。或 false作为回应。不是 'true'但 boolean 值 true .我正在使用 @angular/common/http/testing模块。对于其他响应值,我可以使用 TestResponse.flush(value) ,但这不适用于 boolean值(value)。相反,测试模块提示

Automatic conversion to JSON is not supported for response type.



这是我的测试代码:
const FLUSH_OK = {status: 200, statusText: 'Ok'};

//.. describe...
it('should work', async(() => {
service.myFunction().subscribe((data) => { // my Function returns Observable<boolean>, the real endpoint returns a true/false boolean
expect(data).toEqual(true);
});

// this fails: Failed: Automatic conversion to JSON is not supported for response type.
httpMock.expectOne((req) => {
return req.url === MY_URL;
}).flush(true, FLUSH_OK);

// this also fails: Expected 'true' to equal true.
// httpMock.expectOne((req) => {
// return req.url === MY_URL;
// }).flush('true', FLUSH_OK);

}));

最佳答案

使用 event方法而不是 flush允许您指定响应正文的类型。

const req = httpMock.expectOne('some-url');
req.event(new HttpResponse<boolean>({body: true}));

您还可以选择设置其他属性,例如 statusstatusText .

HttpResponse docs

Original answer

关于angular - @angular/common/http/testing TestRequest.flush 一个 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48544932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com