单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试用于判断某个特定条件(或者场景)下某个特定方法的行为。单元测试是由程序员自己来完成的,最终受益的也是程序员自己。程序员编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,证明这段代码的行为和期望的一致。
我们每天都在做单元测试。程序员编写了一种方法,总是要执行一下,看看功能是否正常,有时还要想办法输出些数据,如弹出信息窗口等,这也是单元测试的一种形式。这种形式的单元测试,针对代码的测试很不完整,代码覆盖率超过70%都很困难,未覆盖的代码可能遗留大量的细小的错误。这些错误还会互相影响,当Bug暴露出来的时候难于调试,大幅度增加了后期测试和维护成本,也降低了开发商的竞争力。可以说,进行充分、完整的单元测试,是提高软件质量,降低开发成本的必由之路。
对于程序员来说,如果养成对自己写的代码进行单元测试的习惯,不但可以写出高质量的代码,还能提高编程水平。要进行充分的单元测试,应专门编写测试代码,并与产品代码隔离。比较简单的办法是为产品工程建立对应的测试工程,为每个类建立对应的测试类,为每个方法建立测试方法。(www.xing528.com)
一般认为,在结构化程序时代,单元测试所说的单元是指函数,在当今的面向对象时代,单元测试所说的单元是指类。以实践来看,以类作为测试单位,复杂度高,可操作性较差,因此仍然主张以方法作为单元测试的测试单位,但可以用一个测试类来组织某个类的所有测试方法。单元测试不应过分强调面向对象,因为局部代码依然是结构化的。单元测试的工作量较大,简单、实用、高效才是硬道理。有一种看法是,只需要测试类的接口(公有方法),其他方法不用测试,从面向对象角度来看,确实有其道理,但是,测试的目的是找错并最终排错,因此,只要是包含错误的可能性较大的方法,都要测试,跟方法是公有还是私有没有关系。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。