gpt4 book ai didi

Angular 单元测试 : Testing http with real APIs

转载 作者:行者123 更新时间:2023-12-05 03:46:03 26 4
gpt4 key购买 nike

我正在使用 karma 在 Angular CLI 中编写单元测试。我想用真正的 API 测试 http 调用,而不是使用模拟。因为 API 模型经常变化,我正在寻找一种方法来确定我的端点响应。有解决方案或示例代码吗?

这是我想用真实 API 测试的服务:

  getCodeRequest(phone: string) {

let params = new HttpParams();
params = params.append('phone', String(phone));

return this.http.get('/auth/request', { params });
}

我将不胜感激。

最佳答案

你所描述的不是单元测试,在这种实现方法中应该避免。相反,您应该将其拆分为单独的单元测试和 e2e 测试。为您的 BE 进行一个单元测试,检查在给定预期输入的情况下,它是否返回预期输出。第二个测试应该检查您的 FE - 使用模拟 - 以确保使用正确的参数发送请求。如果你真的需要检查 api 的通过 - 你需要一个 e2e 测试。具体如何实现取决于您的后端环境。

因此,总而言之,不要试图在单个单元测试中测试整个 API 调用。相反,

  1. 在 BE 上进行单元测试以测试 BE 端的行为
  2. 在您的 Angular 项目中进行单元测试(使用模拟)以测试您的前端
  3. 如果您仍然需要,请进行端到端测试以测试端到端的内容,例如正确的 API。

祝你好运!

编辑

此外,作为旁注 - 您的 API 模型不应不断变化。这是一种不好的做法,会给事情留下空间。您/您的团队应该坐下来定义一个双方都坚持的清晰 API。

祝你好运!

关于 Angular 单元测试 : Testing http with real APIs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65493051/

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