gpt4 book ai didi

unit-testing - 为什么要统计函数在单元测试中被调用的次数

转载 作者:行者123 更新时间:2023-11-28 20:10:45 25 4
gpt4 key购买 nike

我的新同事不断要求我在进行后端单元测试时计算单元测试中的函数被调用的次数。我明白为什么它有时会有帮助,但在大多数情况下我觉得它是多余的和不必要的。从我的角度来看,调用什么函数以及调用多少次都无关紧要。重要的是输入和输出的内容以检查预期的行为。

单元测试应该更像是一个黑匣子,因为你如何得到答案并不重要,重要的是答案是否正确。如果我总是验证某些函数被调用的次数,它会产生大量的间接成本。这也意味着每次我改变解决问题的方法时,我的单元测试都会失败,我每次都需要修复它。我觉得这种方法限制了编码人员的灵 active 。

谁能告诉我为什么要执行这些类型的单元测试?谢谢。

更具体地说,代码在java中,结构概述如下: Controller 处理api调用并调用相关的外观,然后调用服务来获取数据。外观是服务的组合,服务与数据库对话。需要对所有三层执行这些“单元测试”。例如。检查 Controller 中每个外观被调用的次数。并检查外观中的每个服务是否被调用以及调用了多少次。

最佳答案

Can anyone please tell me why these sort of unit testing should be performed?

一般来说,不应该。一个函数被调用多少次是一个私有(private)的实现细节。单元测试测试单元的公共(public)行为,而不是它的私有(private)实现。

与每个一般性陈述一样,也有异常(exception):调用方法的次数对于断言组件的功能是否正确可能很有值(value)。例如,我曾经构建一个缓存系统,您可以在其中将缓存放入管道中并检查它是否正常工作,不仅管道仍然可以提供正确的结果,而且生产者方法应该仅在输入时被调用 一次。如果多次调用,说明缓存的实现有问题。

但正如我所说,这是一个合理的异常(exception)。一般来说,一个方法被调用多少次并不是一个测试标准。

关于unit-testing - 为什么要统计函数在单元测试中被调用的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49194186/

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