我注意到在Visual Studio 2010和Netbeans 7中进行测试的功能,并且想知道他们到底做了什么。使用它们比设计我自己的测试更有效吗?
答案 0 :(得分:4)
单元测试(与集成测试相对)是测试单个单元(通常是类)的功能的测试(通常实际上是多个测试碰巧存在于同一个类和文件中)。
相反,集成测试测试多个不同单元的交互。端到端测试是一种特殊类型的集成测试,可以测试整个软件堆栈,从UI到下面的所有内容。可以进行两种不同类型的测试:“玻璃盒”和“黑盒子”。 “黑匣子”测试是与实现无关的;它仅基于函数/类的记录行为编写,并确保任何实现都遵循记录的行为。它还可能包括对各种理论实现可能产生的潜在错误的测试,但不考虑实际实现的作用。相比之下,“玻璃盒”测试是利用实现知识并确保实现中的每个代码路径都经过测试的测试。一个好的测试是由综合黑盒和玻璃盒测试组成的测试。
有许多不同的免费库可以轻松创建单元测试。我强烈建议您使用googletest和gmock(两者都在Google上广泛使用)进行测试。
答案 1 :(得分:2)
单元测试涉及测试单个类或函数,而与它们通常关联的上下文无关。这可以通过消除一些猜测游戏来减少故障排除时间,同时弄清楚为什么你的代码确实会导致错误。单元测试通常值得花费大量代码或涉及到许多人的大型企业级项目所需的时间和精力。