【发布时间】:2014-11-17 23:36:06
【问题描述】:
这是我提出的几个问题的第一部分,分为不同的主题。
首先,当我创建一个要在其他程序中使用的类时,我应该将测试代码放在哪里。如果我的类将被其他文件使用,我应该使用单独的文件还是在同一个文件中测试我的类?
例如:我正在创建一个 Token 类,它在 Token.h 中声明并在 Token.cpp 中实现,但是当我正在测试以确保一切正常时,我可以在 Token.cpp 中使用 main() 方法或当我以后想使用 Token 时,这会导致问题吗?如果不在 Token.cpp 中,我假设我会使用像 Token_Test.cpp 这样的单独文件进行测试?或者我想我可以在 Token 中使用 main() 进行测试,然后在我确信它按预期工作时注释掉?
谢谢
【问题讨论】:
-
恕我直言,您的问题太宽泛了。
-
很有趣,我不知道如何更具体,但我会尽量做到。我在问人们在定义类时应该如何努力测试他们的代码。显然,如果 Token 永远不会被其他任何东西使用,我可以使用 main() 在 Token.cpp 中进行测试。但是,如果我要在其他文件中使用 Token,那也会有一个 main(),Token.cpp 中的 main() 是否会导致问题?
-
这里是关于使用 C++ 进行单元测试的 Microsoft Visual Studio 2013 材料msdn.microsoft.com/en-us/library/hh598953.aspx,因为单元测试听起来像是您想要做的。您将需要花一些时间阅读 C++ 中的单元测试。如果要将
main()函数放入某个类中,则确实应该使用预处理器指令将其#ifdef 去掉而不是注释掉。另见stackoverflow.com/questions/87794/c-unit-testing-framework 和stackoverflow.com/questions/242926/… -
另见 Exploring the C++ Unit Testing Framework Jungle 虽然几年前它确实谈到了一些框架的特性。这个A quick introduction to the Google C++ Testing Framework 看起来也很有趣。
-
@RichardChambers 谢谢你,我承认对你评论中列出的大部分内容一无所知,但我相信它会有所帮助。我完全不熟悉单元测试,或者框架工作到底是什么,或者其他人在这些线程中提到的用于测试程序的程序。但我确实认为这有助于巩固测试应该分开等。谢谢。