我在Visual Studio中有一个c ++项目。它有1个类,现在我想对该类进行单元测试。为此,我在同一个解决方案中创建了另一个控制台应用程序项目,并在该项目中创建了一个对象,称为方法并断言它返回的内容。
我遇到的唯一问题是链接器抱怨,因为它没有我正在测试的原始项目中的目标文件或.lib文件。如何导出lib并将其链接到测试项目中?或者有更好的方法来说测试项目为自己编译.cpp文件?
请建议。
答案 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()
。