visualc&x2B+;类测试 有没有方法可以很容易地用java方式测试C++类。p>
在java中,您可以添加静态函数main并直接从IDE运行它visualc&x2B+;类测试 有没有方法可以很容易地用java方式测试C++类。p>,c++,debugging,visual-c++,class,C++,Debugging,Visual C++,Class,在java中,您可以添加静态函数main并直接从IDE运行它 class Foo{ ... public static void main(String args[]) { System.out.println("Test class foo here"); } } 在Visual C++ ++?/P>中有可能做到这一点吗? 当然,您可以创建另一个项目,但这是一个糟糕的解决方案(您应该创建项目,然后将其添加到解决方案或运行Visual Studio的另一个副本) 另一
class Foo{
...
public static void main(String args[])
{
System.out.println("Test class foo here");
}
}
在Visual C++ ++?/P>中有可能做到这一点吗?
当然,您可以创建另一个项目,但这是一个糟糕的解决方案(您应该创建项目,然后将其添加到解决方案或运行Visual Studio的另一个副本)
另一种方法是修改main()函数或CWinApp::InitInstance(),但若您更改了文件
根据项目的不同,VS将从项目中重建所有文件(我们只想测试Foo.h和Foo.cpp)
我创建的最佳方法是创建另一个项目(console),将Foo.h和Foo.cpp添加到其中,将公共静态函数run()添加到我的类Foo中,然后像下面这样从console项目中的main()函数运行它
//unitTester.cpp
include "Foo.h"
int main(...){
Foo::run();
return 0;
}
通过这种方式,我可以单独测试我的类Foo(无需重新编译大项目)当我想编写单元测试时,我通常会添加另一个项目,该项目链接测试代码+正在测试的类。我使用编写的测试代码。我使我的实际项目依赖于测试项目。测试项目作为生成后步骤运行其可执行文件。因此,只要测试失败,我甚至无法构建主项目。当我想编写单元测试时,我通常会添加另一个项目,该项目链接测试代码+正在测试的类。我使用编写的测试代码。我使我的实际项目依赖于测试项目。测试项目作为生成后步骤运行其可执行文件。因此,只要测试失败,我甚至无法构建主项目。我使用的解决方法是使用#define来决定应用程序处于何种模式 我通常有一个def.h文件
#define TEST
然后在你写的主文件上
#ifdef TEST
// test code
#else
// main code
#endif
如果要进行测试,您需要在多个地方进行更改,则此条件检查也可以在多个地方进行。如果此测试代码还需要在几个文件中进行更改,那么您所要做的就是在这些源文件中包含def.h
希望这有帮助我使用的解决方法是使用#define来决定应用程序处于何种模式 我通常有一个def.h文件
#define TEST
然后在你写的主文件上
#ifdef TEST
// test code
#else
// main code
#endif
如果要进行测试,您需要在多个地方进行更改,则此条件检查也可以在多个地方进行。如果此测试代码还需要在几个文件中进行更改,那么您所要做的就是在这些源文件中包含def.h
希望这有助于使用。如果您的应用程序有GUI,那么集成起来就有点困难,但是一旦它工作起来,编写测试就非常简单和直接了。使用。如果您的应用程序有GUI,集成起来就有点困难,但一旦它工作起来,编写测试就非常简单和直接。您还可以创建几个项目配置:Release Main、Debug Main、Release Test、Debug Test。然后,后两者将在项目设置中定义测试。这很酷。我应该试试看。我相信这在NetBeans中也是可能的,因为我使用的NetBeans比Visual Studio更多。您还可以创建几个项目配置:Release Main、Debug Main、Release Test、Debug Test。然后,后两者将在项目设置中定义测试。这很酷。我应该试试看。我相信这在NetBeans中也是可能的,因为我使用的NetBeans比VisualStudio更多