gpt4 book ai didi

c++ - 非公共(public)功能是否应该进行单元测试以及如何进行?

转载 作者:可可西里 更新时间:2023-11-01 16:52:20 30 4
gpt4 key购买 nike

我正在为我的一些代码编写单元测试,遇到这样的情况:我有一个对象,它有一个小的暴露接口(interface),但内部结构复杂,因为每个暴露的方法都运行大量的内部函数,包括对对象的依赖状态。这使得外部接口(interface)上的方法很难进行单元测试。

我最初的问题是,我是否也应该对这些内部函数进行单元测试,因为它们更简单,因此更容易编写测试?我的直觉是肯定的,这导致了后续问题:如果是这样,我将如何在 C++ 中执行此操作?

我想到的选项是将这些内部函数从私有(private)更改为 protected ,并使用友元类或继承来访问这些内部函数。这是最好/唯一的方法吗?这样做会保留一些隐藏内部方法的语义吗?

最佳答案

如果您的对象正在执行高度复杂的操作,而这些操作极难通过有限的公共(public)接口(interface)进行测试,那么一个选择是将一些复杂的逻辑分解到封装特定任务的实用程序类中。然后,您可以单独对这些类进行单元测试。将代码组织成易于理解的 block 始终是个好主意。

关于c++ - 非公共(public)功能是否应该进行单元测试以及如何进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/539877/

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