正在加载图片...
132什么是 JUnit的目标呢? 首先,我们不得不回到开发的假定上去。如果缺少一个程序特性的自动测试 ( automated test),我们便假定其无法工作。这看起来要比主流的假定更加安全,主 流的假定认为如果开发者向我们保证一个程序特性能够工作,那么现在和将来其都会 永远工作。 从这个观点来看,当开发者编写和调试代码时,它们的工作并没有完成,它们还要必 须编写测试来演示程序能够工作。然而,每个人都太忙,他们要做的事情太多,他们 没有充足的时间用于测试。我已经有太多的代码需要编写,要我如何再来编写测试代 码?回答我,强硬的项目经理先生。因此,首要目标就是编写一个框架,在这个框架 中开发者能够看到实际来编写测试的希望之光。该框架必须要使用常见的工具,从而 学习起来不会有太多的新东西。其不能比完全编写一个新测试所必须的工作更多。必 须排除重复性的工作。 如果所有测试都这样去做的话,你将可以仅在一个调试器中编写表达式来完成。然而, 这对于测试而言尚不充分。告诉我你的程序现在能够工作,对我而言并没有什么帮助 因为它并没有向我保证你的程序从我现在集成之后的每一分钟都将会工作,以及它并 没有向我保证你的程序将依然能够工作五年,那时你已经离开了很长的时间 于是,测试的第二个目标就是生成可持续保持其价值的测试。除原作者以外的其他人 必须能够执行测试并解释其结果。应该能够将不同作者的测试结合起来并在一起运 行,而不必担心相互冲突。 最后,必须能够以现有的测试作为支点来生成新的测试。生成一个装置( setup)或 夹具( fixture)是昂贵的,并且一个框架必须能够对夹具进行重用,以运行不同的测 试。哦,还有别的吗? 133 JUnit的设计 JUnit的设计将以一种首次在 Patterns Generate Architectures(请参见" Patterns Generate Architectures", Kent Beck and Ralph Johnson, ECOOP94)中使用的风格来呈 现。其思想是通过从零开始来应用模式,然后一个接一个,直至你获得系统架构的方 式来讲解一个系统的设计。我们将提出需要解决的架构问题,总结用来解决问题的模 式,然后展示如何将模式应用于 JUnit。 1331由此开始一 TestCase 首先我们必须构建一个对象来表达我们的基本概念, Testcase(测试案例)。开发者经 常在头脑中存在着测试案例,但在实现它们的时候却采用了许多不同的方式一 1.打印语句 2.调试器表达式 3测试脚本1.3.2 什么是 JUnit 的目标呢? 首先,我们不得不回到开发的假定上去。如果缺少一个程序特性的自动测试 (automated test),我们便假定其无法工作。这看起来要比主流的假定更加安全,主 流的假定认为如果开发者向我们保证一个程序特性能够工作,那么现在和将来其都会 永远工作。 从这个观点来看,当开发者编写和调试代码时,它们的工作并没有完成,它们还要必 须编写测试来演示程序能够工作。然而,每个人都太忙,他们要做的事情太多,他们 没有充足的时间用于测试。我已经有太多的代码需要编写,要我如何再来编写测试代 码?回答我,强硬的项目经理先生。因此,首要目标就是编写一个框架,在这个框架 中开发者能够看到实际来编写测试的希望之光。该框架必须要使用常见的工具,从而 学习起来不会有太多的新东西。其不能比完全编写一个新测试所必须的工作更多。必 须排除重复性的工作。 如果所有测试都这样去做的话,你将可以仅在一个调试器中编写表达式来完成。然而, 这对于测试而言尚不充分。告诉我你的程序现在能够工作,对我而言并没有什么帮助, 因为它并没有向我保证你的程序从我现在集成之后的每一分钟都将会工作,以及它并 没有向我保证你的程序将依然能够工作五年,那时你已经离开了很长的时间。 于是,测试的第二个目标就是生成可持续保持其价值的测试。除原作者以外的其他人 必须能够执行测试并解释其结果。应该能够将不同作者的测试结合起来并在一起运 行,而不必担心相互冲突。 最后,必须能够以现有的测试作为支点来生成新的测试。生成一个装置(setup)或 夹具(fixture)是昂贵的,并且一个框架必须能够对夹具进行重用,以运行不同的测 试。哦,还有别的吗? 1.3.3 JUnit 的设计 JUnit 的设计将以一种首次在 Patterns Generate Architectures(请参见"Patterns Generate Architectures", Kent Beck and Ralph Johnson, ECOOP 94)中使用的风格来呈 现。其思想是通过从零开始来应用模式,然后一个接一个,直至你获得系统架构的方 式来讲解一个系统的设计。我们将提出需要解决的架构问题,总结用来解决问题的模 式,然后展示如何将模式应用于 JUnit。 1.3.3.1 由此开始-TestCase 首先我们必须构建一个对象来表达我们的基本概念,TestCase(测试案例)。开发者经 常在头脑中存在着测试案例,但在实现它们的时候却采用了许多不同的方式- 1. 打印语句 2. 调试器表达式 3. 测试脚本
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有