gpt4 book ai didi

python - 如何正确地对网络应用程序进行单元测试?

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:32 25 4
gpt4 key购买 nike

我正在自学后端和前端 Web 开发(如果重要的话,我会使用 Flaks)并且在对我的应用程序进行单元测试时我需要一些指导。

我主要关心这些不同的情况:

  1. 数据的内部一致性:这很简单 - 我的目标是在涉及登录过程等问题时实现 100% 的覆盖率,最普遍的是,检查所有内容在每个请求保持一致后,python 代码和数据库之间会发生这种情况。

  2. JSON 响应:我正在做的是对我的应用程序上的每个 get/post 调用执行测试请求,然后 断言 json 响应必须是这个和那个,但老实说我不太欣赏这样做的值(value) - 也许是因为我的应用程序仍处于早期阶段?

    • 我应该继续测试每个请求的每个 json 响应吗?
    • 如果是,长期利益是什么?
  3. 外部 API:我在这里看到了相互矛盾的意见。假设我正在使用外部 API 来翻译一些文本:

    • 我应该只测试非常高级的 API,即看看我是否获得了访问 token ,仅此而已?
    • 我应该测试返回的 json 是否符合我的预期吗?
    • 我是否应该不测试任何东西来加速我的测试套件并且不要让它依赖于第三方 API?
  4. 输出的 HTML:我也对这个感到困惑。假设我正在测试函数 add_post():

    • 我是否应该测试在请求之后的页面上所需的帖子是否确实存在?
    • 我开始检查 response.data 行中是否存在 strings/html 标签,但后来我有点放弃了,因为 1) 这需要很多时间 2) 我会不断重写测试,因为我经常更改应用程序。
    • 在这种情况下推荐的方法是什么?

谢谢你,很抱歉冗长。我希望我说清楚了!

最佳答案

其中大部分是个人意见,并且会因开发人员而异。

  1. 有大量用于单元测试的 python 库 - 作为项目开发人员,您最好自行决定是否找到最适合您的工具集/构建过程的库。

    <
  2. 这本身不完全是“单元测试”,我认为它更像是集成测试。这并不是说这没有值(value),它只是一项不同的任务,并且经常会使用不同的工具。对于这样的事情,从长远来看,测试会带来返回,因为您会确信您的错误修复和功能添加不会影响您的端到端代码。如果你已经这样做了,我会继续。在进行重构以确保功能一致时,这些类型的测试非常有值(value)。

  3. 我不会浪费时间测试第 3 方 API。他们的工作是确保他们的产品运行可靠。如果您开始测试 3rd 方功能,您将整天在那里。使用 3rd 方 API 的一个重要原因是您不必测试它们。如果您发现您的应用程序因为第 3 方 API 而崩溃,那么可能是时候选择一个不同的 API 了。如果您的项目扩展到每次 API 失败时您都会损失数千美元的规模,那时候您将面临一大堆全新的问题需要处理(并希望有资源来解决这些问题)。

    <
  4. 一般来说,我不测试静态内容或 html。有一些工具(网络抓取工具)可以让您控制自己的网站以获得一致的功能。如果您有时间,我个人会把它作为最后优化阶段的最后优先事项。大多数网站的外观和感觉变化如此频繁,以至于编写测试是不值得的。外观和感觉也很容易手动测试,因为它非常直观。

关于python - 如何正确地对网络应用程序进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23849163/

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