单元测试一般是做为软件测试中基础的测试类型,用于测试单独的模块是否能够正常工做。它于功能测试不一样,它更加关注的是代码内部的逻辑,而非是用户的需求。javascript
前面粗略了介绍了单元测试的定义,详细的解释是:单元测试也称为模块测试或组件测试。在软件开发过程当中,检查软件的单个单元或模块是否正常工做,它是由开发人员在开发人员的环境中完成的。php
软件测试一般划分为四个层次,每一个层次都会去验证软件产品的功能,质量和性能指标。它们是:单元测试,集成测试,系统测试和验收测试。java
一般单元测试是使用白盒测试的方法node
单元测试能够是手动测试或者是自动化测试git
它做为测试层次的第一层,一般是在集成测试以前完成。程序员
它须要由对于代码内部逻辑熟悉的人执行,一般是开发或者是白盒测试人员。github
首先须要准备单元测试计划:api
其次是要准备测试用例和脚本:浏览器
最后是单元测试的执行。安全
市面上有不少单元测试的工具,它们可用于协助单元测试。具体的单元测试的工具的选择仍是要根据项目的具体状况决定,好比说项目的具体技术栈,是否能够重用已有的单元测试工具等。咱们将提供如下几个示例:
Junit:
Junit的目标是为JVM开发人员开发一个基础测试的测试框架。这包括关注java 8和更高版本,以及支持多种不一样风格的测试。
TestNG:
TestNG是一个受JUnit和NUnit启发的测试框架,可是它引入了一些新的功能,这些功能使它更增强大和易于使用,例如:
NUnit:
它是.net语言的单元测试框架。最初是从JUnit移植而来的,目前的产品版本3已经被彻底重写了,它有许多新特性,而且支持各类各样的.NET平台。
xUnit.net:
xUnit.net是一个免费的、开源的、面向社区的.net框架单元测试工具xunit.net是由nunit v2的原始发明者编写的,它是用于c、f、vb.net和其余.net语言单元测试的最新技术。xunit.net与resharper、coderash、testdriven.net和xamarin一块儿工做。它是.NET基金会的一部分,根据他们的行为准则运做。它是根据Apache 2(OSI批准的许可证)受权的。
JMockit:
JMockit是开源的单元测试工具jmockit是一个用于开发人员测试的java工具包,包括模拟api和代码覆盖工具。
EMMA:
EMMA是一个用于测量和报告java代码覆盖率的开源工具包。EMMA支持大规模的企业软件开发,同时保持单个开发人员的快速工做和迭代团队中的每一个开发人员如今均可以避免费得到代码覆盖率,最主要的是能够很快的得到覆盖率!
PHPUnit:
PHPUnit是一个面向程序员的php测试框架。它是单元测试框架的xunit架构的一个实例。
Cantata:
Cantata是一个单元和集成测试工具,使开发人员可以在本地和嵌入式目标平台上验证标准兼容或业务关键代码。
Cantata经过自动化,帮助加速符合标准的动态测试要求:
TestComplete:
TestComplete是一个适用于多种应用类型和技术的自动化测试环境,包括(但不限于)Windows、.NET、WPF、Visual C++、Visual Basic、Delphi、C++Builder、Java和Web应用程序和服务。
Mocha:
Mocha是一个功能丰富的javascript测试框架,运行在node.js和浏览器中,使异步测试变得简单有趣。MOCA测试连续运行,容许灵活且准确的报告,同时将异常异常映射到正确的测试用例。托管在github上。
Jasmine:
Jasmine是一个用于测试JavaScript代码的行为驱动开发框架它不依赖于任何其余JavaScript框架它不须要dom。并且它有一个干净、明显的语法,因此您能够轻松地编写测试。
单元测试做为测试的第一层次,被很早引入项目。因此在项目开始前,咱们同时须要对单元测试的技术选型和测试案例的计划进行准备。这样才能够在项目研发阶段,同时实现单元测试,以保证功能模块的功能。若是大伙有关于单元测试的一些见解,也请留言区回复和分享。