gpt4 book ai didi

angular - HttpTestingController ExpectOne 仅验证 api 端点

转载 作者:行者123 更新时间:2023-12-02 20:16:17 27 4
gpt4 key购买 nike

我只想测试请求是否发送到正确的 api 端点。例如:我有一个服务将请求发送到 http://localhost:port/sth/sth2我只想检查是否有 http://localhost:port 。我正在使用 HttpTestingController 和 ExpectOne 函数,可以吗?

最佳答案

这是您想要做的事情吗?

设置

let httpClient: HttpClient;
let httpTestingController: HttpTestingController;

beforeEach(() => {
TestBed.configureTestingModule({
imports: [ HttpClientTestingModule ]
});

httpClient = TestBed.get(HttpClient);
httpTestingController = TestBed.get(HttpTestingController);
});

测试

it('can test HttpClient.get', () => {
const testData: Data = {name: 'Test Data'};

httpClient.get<Data>('http://localhost:8085/test/suite')
.subscribe(data =>
expect(data).toEqual(testData)
);

const request = httpTestingController.expectOne(
(req: HttpRequest<any>) => req.url.includes('http://localhost:8085'));

request.flush(testData);
httpTestingController.verify();
});

这是 Angular 文档中的示例,只不过您将一个函数传递给 expectOne,该函数接受一个 req 并返回一个 bool 值,用于检查请求的 url 是否包含正确的端点。

当然,您将用您的服务替换 HttpClient。

关于angular - HttpTestingController ExpectOne 仅验证 api 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52312409/

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