gpt4 book ai didi

c++ - 如何组织C++测试应用和相关文件?

转载 作者:可可西里 更新时间:2023-11-01 17:55:29 24 4
gpt4 key购买 nike

我正在开发一个 C++ 库,它(除其他外)具有读取配置文件的功能;我想为此添加测试。到目前为止,这导致我创建了许多有效和无效的配置文件,每个配置文件只有几行来测试一个特定的功能。但它现在变得非常笨重,因为文件太多,还有很多小型 C++ 测试应用程序。不知何故,这对我来说似乎是错误的:-)那么你有没有提示如何组织所有这些测试、测试应用程序和测试数据?

注意:库的公共(public) API 本身不容易测试(它需要一个配置文件作为参数)。用于实际读取和解释配置值的多汁、容易出错的方法是私有(private)的,所以我看不到直接测试它们的方法?

那么:您会坚持针对真实文件进行测试吗?如果是这样,您将如何组织所有这些文件和应用程序,以便它们仍然可维护?

最佳答案

也许库可以接受某种流输入,这样您就可以传入一个类似字符串的对象并避免所有输入文件?或者根据配置的类型,您可以提供“get/setAttribute()”函数来直接、公开、摆弄参数。如果这不是真正的设计目标,那就没关系了。数据驱动的单元测试在某些地方不受欢迎,但总比没有好!我可能会像这样布置代码:

  project/
src/
tests/
test1/
input/
test2
input/

在每个 testN 目录中,您将有一个与输入目录中的配置文件关联的 cpp 文件。

然后,假设您正在使用 xUnit 样式的测试库(cppunitgoogletestunittest++ 或其他),您可以将各种 testXXX() 函数添加到单个类中以测试相关的功能组.这样您就可以通过将至少一些测试组合在一起来解决部分“很多小程序”问题。

唯一的问题是库是否希望配置文件被称为特定的东西,或者位于特定的位置。不应该是这种情况,但如果是这种情况,则必须通过将测试文件复制到预期位置来解决。

不要担心大量测试会使您的项目变得困惑,如果它们隐藏在测试目录中,那么它们就不会打扰任何人。

关于c++ - 如何组织C++测试应用和相关文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/186648/

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