gpt4 book ai didi

c++ - 如何为 C++ 项目编写单元测试

转载 作者:行者123 更新时间:2023-11-30 02:35:23 25 4
gpt4 key购买 nike

我有兴趣将单元测试应用于我正在用 C++ 制作的不断发展的个人项目。我没有接受过正式的编程培训,而是自学的。结果我从来没有真正了解单元测试通常是如何在 C++ 中完成的。我在网上阅读了很多关于为什么单元测试很重要的信息,但是我没有那么幸运地找到关于如何将单元测试写入 C++ 项目的具体示例。我目前正在做的是类似以下的事情:

我有一个特殊的“测试”类,它只包含静态方法。每种方法都测试我项目中某个类的一个方面。在具体代码中,它看起来像:

class Test
{
public:
static void test1();
static void test2();
static void test3();
};

然后在 main 中我只是调用:

int main()
{
Test::test1();
Test::test2();
Test::test3();
//etc
}

每个测试都会打印到控制台,说明它是否通过。每个测试都可能通过初始化它们、检查它们的方法以获得正确的输出等来测试我的其他类...

我的问题:这是进行单元测试的标准方法吗?我还听说您将测试直接写入每个类(因此它们只是碰巧进行测试的额外方法)。然后,每当您创建一个类的对象或调用一个方法时,它只会将您的测试作为运行程序的一部分来运行。这是实现单元测试的更好、更标准的方法吗?我基本上只是试图完全理解单元测试通常是如何实现的,所以如果有人问我关于单元测试的问题,我可以胜任地说我知道如何去做。

最佳答案

我个人的经验是,我使用了 Boost.Test。我只使用 header 实现(只是一个偏好)。您将需要一天左右的时间来阅读文档并开始工作。使用测试库或框架的好处是您只编写和查看您的测试,而不是运行它们的周围代码。

例如,我的策略是为库编写测试,即为库中的每个类创建一个测试文件。该文件具有所需的尽可能多的测试。测试文件的集合创建一个单独的可执行文件来测试库。

我不建议将测试直接写入您的类中。我认为这只会让您的实际代码变得困惑。

关于c++ - 如何为 C++ 项目编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33685342/

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