如何在 VisualStudio 中对 main() 进行单元测试

Ken*_*Ken 0 c++ unit-testing program-entry-point googletest visual-studio

有没有一种简单的方法可以main()在 C++ 中的 Visual Studio 2019 中进行单元测试?

我已经尝试#including了 main.h 并main()从测试中调用,但它“看起来”像是在main()调用测试,从而导致递归。

我想很早就向学生介绍测试(编写代码使测试变得绿色),学生将(还)没有函数或类的经验。

仅供参考,我们正在使用 GoogleTest,但可以更改该选择。

for*_*818 5

main很特别,因为main程序中只能有一个。也main心不是你的东西通常单元测试。然而,解决方案相当简单

// the "main" function you can test
int my_main(int argc, char** argv) {
    // ...
}

// your main (the one you dont include for testing
int main(int argc, char** argv) {
    return my_main(argc,argv);
}
Run Code Online (Sandbox Code Playgroud)

并且学生将没有(还)函数或类的经验

我对这个策略表示怀疑。可组合性是单元测试的先决条件。如果您有可以单独测试的小单元,则单元测试是有意义的。在能够进行单元测试之前,main需要一个基本的了解,即存在可以调用(和测试)的函数。