gpt4 book ai didi

database - 如何为依赖动态数据的函数编写单元测试?

转载 作者:太空狗 更新时间:2023-10-30 01:44:43 27 4
gpt4 key购买 nike

假设您有一个网站,它使用一个函数从数据库中检索数据并返回要显示/解析/等的结果...

由于从数据库中检索的数据是动态的,并且可能每时每刻都在变化,您如何正确地为此功能编写单元测试?

假设函数应该返回一组结果。显然,单元测试可以测试是否返回数组。但是,如果由于错误编写的 MySQL 查询而导致数组本身的内容不正确,会发生什么情况呢?数组的大小可能为零,或者数组的内容可能不正确。由于它依赖于不断变化的数据,单元测试如何知道什么是正确的,什么不是?从单元测试本身内部调用数据库是否有必要,以便与它进行比较?

如何为依赖动态数据的函数正确编写单元测试?

最佳答案

理想形式的单元测试应该只测试一件事。在这种情况下,您要测试两件事:

  1. 你的函数的逻辑
  2. 数据库检索

所以我建议进行以下重构:

  1. 将数据库检索逻辑移到一个单独的函数中
  2. 让您要测试的函数调用其他函数
  3. 模拟返回数据的函数,这样您就可以只对应用的逻辑进行单元测试
  4. 如果有意义(如果你只是依赖另一个库来做这件事,那么希望那个库已经有测试),为动态检索功能写一个单元测试,你不能测试细节,但可以可以测试返回数据的结构和合理性(比如所有的字段都设置好了,是现在5秒以内的时间)。

此外,通常最好在测试环境中运行单元测试,在这种环境中您可以完全控制数据库中存储的内容。您不想针对生产数据运行这些。

关于database - 如何为依赖动态数据的函数编写单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288096/

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