Java开源测试工具JUnit简介 - 编程入门网
Result
如果一个TestCase在森林中运行,是否有人关心其结果呢?当然-你之所以运行测试就是为了要证实它们能够运行。测试运行完后,你想要一个记录,一个什么能够工作和什么未能工作的总结。 如果测试具有相等的成功或失败的机会,或者如果我们刚刚运行一个测试,我们可能只是在TestCase对象中设定一个标志,并且当测试完毕时去看这个标志。然而,测试(往往)是非常不均匀的-他们通常都会工作。因此我们只是想要记录失败,以及对成功的一个高度浓缩的总结。 The Smalltalk Best Practice Patterns(请参见 Beck, K. Smalltalk Best Practice Patterns, Prentice Hall, 1996)有一个可以适用的模式,称为Collecting Parameter(收集参数)。其建议当你需要在多个方法间进行结果收集时,应该在方法中增加一个参数,并传递一个对象来为你收集结果。我们创建一个新的对象,TestResult(测试结果),来收集运行的测试的结果。
这个简单版本的TestResult仅仅能够计算所运行测试的数目。为了使用它,我们不得不在TestCase.run()方法中添加一个参数,并通知TestResult该测试正在运行:
并且TestResult必须要记住所运行测试的数目:
我们将TestResult的stratTest方法声明为synchronized,从而当测试运行在不同的线程中时,一个单独的TestResult能够安全地对结果进行收集。最后,我们想要保持TestCase简单的外部接口,因此创建一个无参的run()版本,其负责创建自己的TestResult。
我们下面的设计快照可如图3所示。 图3 TestResult应用Collecting Parameter Java开源测试工具JUnit简介(4)时间:2011-01-01 cn-java 李巍如果测试总是能够正确运行,那么我们将没有必要编写它们。只有当测试失败时测试才是让人感兴趣的,尤其是当我们没有预期到它们会失败的时候。更有甚者,测试能够以我们所预期的方式失败,例如通过计算一个不正确的结果;或者它们能够以更加吸引人的方式失败,例如通过编写一个数组越界。无论测试怎样失败,我们都想执行后面的测试。 JUnit区分了失败(failures)和错误(errors)。失败的可能性是可预期的,并且以使用断言(assertion)来进行检查。而错误则是不可预期的问题,如ArrayIndexOutOfBoundsException。失败可通过一个AssertionFailedError来发送。为了能够识别出一个不可预期的错误和一个失败,将在catch子句(1)中对失败进行捕获。子句(2)则捕获所有其它的异常,并确保我们的测试能够继续运行...
TestCase提供的assert方法会触发一个AssertionFailedError。JUnit针对不同的目的提供一组assert方法。下面只是最简单的一个:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |