本教程的第一部分概述了单元测试。完成本教程的这一部分后,将能够:
%UnitTest
包和xUnit
测试框架之间的相似性。单元测试是对单个代码模块的正确性的测试,例如,方法或类的测试。通常,开发人员在开发代码时为其代码创建单元测试。典型的单元测试是一种执行方法的方法,该方法测试并验证该方法是否为给定的一组输入生成了正确的输出。
单元测试不同于集成测试。集成测试验证了一组代码模块交互的正确性。单元测试仅单独验证代码模块的正确性。一组代码模块的集成测试可能会失败,即使每个模块都通过了单元测试。
单元测试提供了许多好处,包括:
单元测试框架是为开发和执行单元测试提供支持的类包。它们可以很容易地扩展以支持更具体或专门化类型的单元测试。
XUnit系列测试框架基于原始的Sunit
框架(用于单元测试SmallTalk
代码),包括以下框架:
JUnit-Java
代码的单元测试框架。NUnit-C#
、VB.NET
和其他.NET
语言代码的单元测试框架。CppUnit-C++
代码的单元测试框架。PyUnit-Python
代码的单元测试框架。%UnitTest
包和xUnit
框架共享相同的基本结构。熟悉任何Unit
框架的开发人员都可以毫不费力地学习使用%UnitTest
包。%UnitTest
和xUnit
框架都围绕以下基本测试结构组织:
%UnitTest
包和xUnit
框架都支持测试自动化。当单元测试完成执行时,它会报告测试是通过还是失败。不需要解释测试结果。这是非常重要的。可以为每个代码更改执行大量单元测试。如果必须不断地阅读和解释结果,这个过程很快就会变得非常乏味和容易出错。
许多xUnit
框架提供了汇总测试结果的图形用户界面(GUI)。%UnitTest
会生成一个显示测试结果的网页。它以绿色显示有关通过的测试的信息,以红色显示有关失败的测试的信息。开发人员可以一目了然地判断是否有任何测试失败。
这是由%UnitTest
单元测试生成的测试报告。用户可以通过单击页面上的超链接深入查看提供有关测试的更多详细信息的页面。
敏捷软件方法论,例如测试驱动开发(TDD)和极限编程,特别强调单元测试。事实上,这些方法使用单元测试来驱动开发过程。他们提倡“测试优先”的软件开发方法。在这种方法中,开发人员在编写代码模块的一行代码之前设计并编写代码模块的单元测试。然后,开发人员创建代码模块,目标是通过单元测试。
Test First
方法的倡导者声称该方法具有以下好处:
注意:测试优先开发的支持者通常主张在代码模块之前执行单元测试,而不仅仅是创建单元测试。当然,在这一点上测试应该会失败。他们甚至可能不会编译。
XUnit
和%UnitTest
测试报告GUI报告以绿色表示通过测试,以红色表示未通过测试。下面是使用测试优先开发方法的开发节奏:
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。