如何在没有任何单元测试框架的情况下对我的课进行单元测试 - visual studio setup

时间:2016-07-03 16:58:11

标签: c++ visual-studio unit-testing visual-studio-2015

我在Visual Studio中有一个c ++项目。它有1个类,现在我想对该类进行单元测试。为此,我在同一个解决方案中创建了另一个控制台应用程序项目,并在该项目中创建了一个对象,称为方法并断言它返回的内容。

我遇到的唯一问题是链接器抱怨,因为它没有我正在测试的原始项目中的目标文件或.lib文件。如何导出lib并将其链接到测试项目中?或者有更好的方法来说测试项目为自己编译.cpp文件?

请建议。

2 个答案:

答案 0 :(得分:1)

单元测试应该与被测试的应用程序一起编译或链接。

如果您计划将单元测试visual studio项目与主应用程序visual studio项目分开,您可以创建main studio studio项目的静态或动态链接库,并将其与单元测试项目链接。

答案 1 :(得分:1)

  

如何导出lib并将其链接到测试项目中?或者有更好的方法来说测试项目为自己编译.cpp文件吗?

问题不在于使用单元测试框架,而在于在解决方案中组织应用程序代码的最佳方式是什么。

应该进行测试的东西应该是一个单独的静态或共享库项目,可以与不同的可执行文件链接。

您的常规应用程序应该是int main(int argc, char* argv[])可执行入口点的瘦代理,例如:

 class Application {
 public:
       Application(int argc, char* argv[]);
       int run();
 };

因此,您也可以轻松地为此课程提供单元测试。

大多数测试框架已经提供main()函数的适当实现来运行所有测试用例,或者您提供自己的控制台应用程序并使用assert()

BTW,这不是一个仅限于visual studio的问题,但它将面临任何IDE或构建系统。