gpt4 book ai didi

c++ - 使用 QTestLib 进行单元测试

转载 作者:太空狗 更新时间:2023-10-29 21:47:53 25 4
gpt4 key购买 nike

我正在尝试使用 QTestLib 对我的 Qt 应用程序进行单元测试。我看到新的 Visual Studio 2012 有一个内置的 C++ 测试框架和谷歌搜索我看到了 this讨论测试原生项目的不同方法的页面。我会有两个不同的项目,一个用于正常程序,一个用于测试。实际上我的应用程序不是 DLL,而是一个简单的 C++ exe。是用另一个项目测试它以链接到 .obj 文件还是链接到 libs 的最佳方法?我不会从源代码中导出任何东西,因为我的不是 DLL

最佳答案

这是一个典型的 QtTest 项目,具有三个代码单元:unit1、unit2 和 unit3

    project/
├── project.pro
├── src
│ ├── main.cpp
│ ├── src.pro
│ ├── unit1.cpp
│ ├── unit1.h
│ ├── unit2.cpp
│ ├── unit2.h
│ ├── unit3.cpp
│ └── unit3.h
└── tests
├── stubs
│ ├── stubs.pro
│ ├── unit1_stub.cpp
│ ├── unit2_stub.cpp
│ └── unit3_stub.cpp
├── test1
│ ├── test1.cpp
│ ├── test1.h
│ └── test1.pro
├── test2
│ ├── test2.cpp
│ ├── test2.h
│ └── test2.pro
├── test3
│ ├── test3.cpp
│ ├── test3.h
│ └── test3.pro
└── tests.pro

该项目产生 4 个二进制文件:1 个应用程序本身和三个用于测试每个单元的测试二进制文件。例如,test1 应该包括 src/unit1.cpp、src/unit1.h 以及 stub 的 unit2 和 unit3:src/unit2.h、tests/stubs/unit2_stub.cpp、src/unit2.h、tests/stubs/unit3_stub。 cpp。使用这种设置,src/unit1.cpp 和 tests/stubs/unit1_tests.cpp 将被编译两次,如果单元数量更大,这个数字将会增加。这对于小型项目不是问题,但对于大型项目,这可能会导致构建时间显着增加。

然后将 unitX.cpp 和 unitX.h 拆分为单独的库,静态链接到主应用程序,每个测试都将消除多次构建的需要。

关于c++ - 使用 QTestLib 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125833/

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