分析 JUnit 框架源代码

合集下载

Junit4单元测试框架的常用方法介绍

Junit4单元测试框架的常用方法介绍

Junit4单元测试框架的常⽤⽅法介绍Junit 介绍:Junit是⼀套框架(⽤于JAVA语⾔),由 Erich Gamma 和 Kent Beck 编写的⼀个回归测试框架(regression testing framework),即⽤于⽩盒测试。

本⽂介绍的内容:1 Junit Myeclipse测试类的⽣成2 JUnit 4 常⽤的⼏个annotation 介绍与使⽤ (@Before @After @Test @Ignore @BeforeClass @AfterClass)3 常⽤的断⾔介绍4 特殊的处理(限时测试,异常测试)5 参数化配置(@Parameters)准备测试代码测试的⽅法(正确、错误⽅法、死循环、抛异常)LogicServicepackage com.logic;public class LogicService {public int add(int x ,int y){ //加法return x+y;}public int sub(int x ,int y){ //减法return x-y;}public int div(int x ,int y){ //除法return x/y;}public int div2(int x ,int y){ //除法做了异常判断try {int z = x/y;} catch (Exception e) {e.printStackTrace();}return x/y;}public void loop(int x ,int y){ //死循环for(;;)x=y;}public void unCompleted(int x ,int y){ //未完成的模块//还在开发中}}⼀ Myeclipse测试类的⽣成1 对需要测试的类点右键 NEW ⼀个Junit Test Case2 点击NEXT注意 1 选择NEW Junit 4 test2 source folder 是默认会填写上之前右键NEW的那个类,如果不是的话,请⾃⾏进⾏修改3 package 默认会填写当前的包名个⼈建议重新开个测试包-即在包后⾯加上.test 表⽰是单元测试⽤例专⽤包与源代码分离4 name 默认会在之前右键NEW的那个类的基础的后⾯加上Test 如果不是的话,建议⾃⾏进⾏修改,便于标⽰5 初始化的⽅法,我⼀般会勾上个setUp,这个请随意。

JUnit框架面试题

JUnit框架面试题

JUnit框架面试题在面试中,JUnit是一个常见的话题。

作为一种广泛应用于Java开发的测试框架,它在软件开发过程中扮演着非常重要的角色。

本篇文章将从多个方面介绍JUnit框架,包括其起源、特点、使用方法以及常见的面试题。

一、JUnit框架简介JUnit是一个基于Java的开源测试框架,它专门用于编写和运行可重复的自动化单元测试。

JUnit最初由Kent Beck和Erich Gamma于上世纪90年代开发,并逐渐成为Java开发人员首选的测试框架。

JUnit通过提供一套简洁而有效的API,方便开发人员编写可靠的单元测试,提高软件质量和开发效率。

二、JUnit的特点1. 简单易用:JUnit提供了简洁而易于理解的API,使开发人员能够快速编写测试用例。

2. 灵活性:JUnit支持各种测试场景,包括单元测试、集成测试和功能测试等,可以轻松应对不同的测试需求。

3. 自动化测试:JUnit可以自动运行测试用例,并生成详细的测试报告,帮助开发人员及时发现和修复潜在的问题。

4. 断言库:JUnit提供了一系列的断言方法,可以验证代码的预期行为,帮助开发人员检查代码是否按照预期执行。

5. 插件扩展:JUnit支持各种插件扩展,可以与其他测试工具和框架进行集成,提供更丰富的功能。

三、JUnit的使用方法在使用JUnit编写测试用例时,通常需要按照以下步骤进行:1. 导入JUnit库:在项目中导入JUnit库,以便使用JUnit的相关类和方法。

2. 编写测试类:创建一个与要测试的类对应的测试类,并在测试类中编写测试方法。

3. 添加测试注解:使用JUnit的注解(如@Test、@Before、@After 等)标注测试方法,指示JUnit应如何执行测试用例。

4. 运行测试:运行JUnit测试,控制台将显示测试结果和细节,包括测试通过的用例数、失败的用例数等。

5. 分析结果:根据测试结果进行分析和调试,修复问题代码,并重新运行测试,直到所有测试通过。

编写的一个回归测试框架(Regression

编写的一个回归测试框架(Regression

如果测试过多则存在将测试故障隐藏到其他故障的风险如果测试过于复杂出现故障的机率将增大junit建议先在代码中进行特定测试然后将这些测试集中到testsuite中以提供类或组件稳定性的基准检查
JUnit介绍
JUnit概述
JUnit是由 Erich Gamma 和 Kent Beck 编 写的一个回归测试框架(Regression Testing Framework),供Java开发人员编 写单元测试之用。 思考:为什么要进行单元测试?
如果要运行单个TestCase,则可以调用TestSuite的 一个构造函数,将其与测试关联起来: TestSuite suite=new TestSuite(Money.class); 还可以调用addTest或addTestSuite方法将测试与 TestSuite关联起来 TestSuite表示一个Test实现器集合,可以引用其他 任何Test,甚至可以引用另一个TestSuite对象。最 后,只需要将它们与另一个TestSuite关联起来,就 能运行项目中的所有TestSuite对象
JUnit用于支持测试驱动的开发。该过程 的基本理念是:开发测试然后构建满足 测试要求的代码。TDD(测试驱动开发) 建议执行下列步骤:
设计代码特性的测试 运行测试,检验其失败 修改代码,尽量减少保证测试成功需要的工作 再次运行测试,确保其成功
在编写JUnit测试时,有些人喜欢在单个 方法中执行太多的测试。这样做存在以 下缺点:
运行JUnit
命令行 有3种类型的命令行执行,它们都可以从终端窗 口运行。对于简单的基于文本的执行,可输入: java junit.textui.TestRunner [TestClass] 还可以运行AWT或SWING用户界面 java junit.awtui.TestRunner [TestClass] 或 java junit.swingui.TestRunner [TestClass]

使用JUnit进行代码测试

使用JUnit进行代码测试

使用JUnit进行代码测试在软件开发过程中,代码测试是一个关键的环节,它可以帮助我们发现代码中存在的问题,并及时修复,从而提高软件的质量。

然而,传统的手动测试方式需要耗费大量的时间和人力,而使用JUnit进行代码测试则可以自动化测试过程,提高测试效率。

JUnit是基于Java语言的一个开源测试框架,它主要用于编写和运行单元测试。

在JUnit中,我们可以通过编写测试用例对程序的各个部分进行测试,从而验证代码的正确性和鲁棒性。

下面,我们来看一下如何使用JUnit进行代码测试。

1. 添加JUnit库首先,我们需要在项目中添加JUnit库。

在Eclipse中,可以通过如下步骤添加JUnit库:1) 右键单击项目名称,选择“Build Path” -> “Configure Build Path”。

2) 选择“Libraries”选项卡,点击“Add Library”按钮。

3) 选择“JUnit”库,点击“Next”按钮。

4) 选择JUnit版本,点击“Finish”按钮。

2. 编写测试用例在JUnit中,每个测试用例都是由一个或多个测试方法组成的。

测试方法以@Test注解标记,表示这是一个测试方法。

下面是一个简单的测试用例:import static org.junit.Assert.assertEquals;import org.junit.Test;public class MyTest {@Testpublic void testAdd() {int a = 1;int b = 2;assertEquals(3, a + b);}}在测试用例中,我们可以使用JUnit提供的断言方法进行测试,比如assertEquals()方法用于判断实际值是否等于期望值。

3. 运行测试用例当我们编写好测试用例后,就可以运行测试用例了。

在Eclipse 中,可以通过右键单击测试用例所在类的名称,选择“Run As” -> “JUnit Test”来运行测试用例。

Junit5-单元测试框架总结(基于IntelliJIDEA)

Junit5-单元测试框架总结(基于IntelliJIDEA)

Junit5-单元测试框架总结(基于IntelliJIDEA)⾸先Junit5我觉得它是⼀个测试框架,当你编写完⼀个类之后,需要测试⼀下你写的功能是否正常运⾏。

⼀种⽅法是创建⼀个Main函数来运⾏测试,这个⽅法简单易懂,不过有⼀些不合理的地⽅。

例如图书借阅系统,测试的时候,会有新增记录、查询记录、删除记录、修改记录等等,如果全部写在主函数测试,会使得主函数很乱,即可读性很低。

其⼆在Junit5中测试,每⼀块功能独⽴为⼀个函数,可读性提⾼,逼格也提⾼。

总之,Junit5既然存在,就必定有它"合理"的地⽅,有它的闪光点。

对于我们来说,技多不压⾝,多学⼀门技术总不会错。

扯了这么多,我们⾸先先来尝试⼀下helloworld的⽤法。

后续还会有⼀个Junit5综合项⽬,将在近期发布。

这个是我在2019年11⽉26⽇尝试,运⾏截图、编译环境也是这个时期的。

如果有某⼀步出现了错误,欢迎留⾔,我接受⼤家的Bug,希望本⽂能够帮助更多的童鞋学习了解Junit5,共同提⾼。

第⼀步:创建java解决⽅案,我命名为Junit_test:第⼀步很简单,就是跟普通java⼀样,创建⼀个解决⽅案。

第⼆步:创建⼀个⽂件夹,⽤来放jar⽂件。

我这⾥命名为lib第三步:将这三个jar包复制到lib⽂件夹,然后导⼊到项⽬上⽅为三个jar包的下载地址,全免费,如果⽆法下载请留下邮箱,我看到后会私发拷贝进去之后,如上图所⽰,接下来我们需要真正把它导⼊到项⽬中PS:这⾥要三个包全部选中,点击OKPS_again:这⾥三个勾全部选上,然后OK第四步:创建⼀个包,包下创建⼀个类。

我把包命名为cn.ypc,类名为helloworld package cn.ypc;public class helloworld {public void paint(String str){System.out.println("hello " + str + "!");}}这是⼀个很普通的java类,类内只有⼀个⽅法,即传⼊⼀个字符串,输出 hello 加这个字符串第五步:同第⼆步创建⼀个test的⽂件夹,⽤于存放测试函数,然后标记为测试类⽂件夹此时test⽂件夹会变成淡绿⾊,如下图所⽰打开helloworld.java⽂件,同时按下ctrl + shift + T要在类内部点哦,在外⾯点没⽤的勾选上这个paint需要测试的函数,点击OK然后对代码进⾏相应的修改package cn.ypc;import org.junit.*;public class helloworldTest {helloworld helloworld;@Testpublic void paint() throws Exception{helloworld = new helloworld();helloworld.paint("ypc");helloworld.paint("yuyao");helloworld.paint("zwz");}}@Test表明下⾯的函数是测试的函数,可以在⾥⾯测试helloworld类⾥⾯的paint函数。

idea 单元测试方法代码编写

idea 单元测试方法代码编写

idea 单元测试方法代码编写在IntelliJ IDEA 中,你可以使用内置的测试框架来编写和运行单元测试。

下面是一个使用JUnit(一个常用的Java 单元测试框架)的简单示例。

假设你有一个类Calculator,它包含一个加法方法:// Calculator.javapublic class Calculator {public int add(int a, int b) {return a + b;}}现在,你想编写一个单元测试来测试这个加法方法。

1.创建测试类:•在src/test/java目录下创建一个与被测试类相对应的测试类。

例如,创建一个CalculatorTest类。

// CalculatorTest.javaimport org.junit.Test;import static org.junit.Assert.*;public class CalculatorTest {@Testpublic void testAdd() {Calculator calculator = new Calculator();int result = calculator.add(2, 3);assertEquals(5, result);}}在这个例子中,我们使用了JUnit 的@Test注解来标记测试方法,并使用assertEquals断言来验证加法方法的正确性。

2.运行测试:•在IntelliJ IDEA 中,你可以右键点击测试类或测试方法,然后选择"Run" 或"Debug" 来运行测试。

也可以使用快捷键Ctrl + Shift + F10。

3.查看测试结果:•在IDEA 的底部"Run" 窗口中,你将看到测试执行的结果。

绿色表示测试通过,红色表示测试失败。

这只是一个简单的示例,实际上,你可能会涉及更复杂的测试场景、使用Mock 对象等。

junit测试实验报告

junit测试实验报告

junit测试实验报告
《Junit测试实验报告》
在软件开发过程中,测试是非常重要的一环。

而Junit作为一个广泛应用的Java 单元测试框架,可以帮助开发人员快速、方便地进行测试。

本文将通过一个实验报告,介绍Junit测试的基本原理和使用方法。

实验目的:
1. 了解Junit测试框架的基本原理和使用方法
2. 掌握Junit测试的常用注解和断言方法
3. 通过实际示例,展示Junit测试的实际应用
实验内容:
本次实验将以一个简单的Java类为例,演示如何使用Junit进行单元测试。

该Java类包含一个简单的方法,用于计算两个整数的和。

实验步骤:
1. 导入Junit测试框架
2. 创建一个测试类,并在该类中编写测试方法
3. 使用Junit的注解和断言方法,对目标方法进行测试
4. 运行测试,并查看测试结果
实验结果:
经过测试,目标方法运行正常,测试结果符合预期。

实验总结:
通过本次实验,我们了解了Junit测试框架的基本原理和使用方法。

Junit提供了丰富的注解和断言方法,可以帮助开发人员编写简洁、高效的测试代码。


过Junit测试,可以有效地提高软件质量,减少bug的产生。

在实际开发中,我们应该充分利用Junit测试框架,编写完善的测试用例,保证软件的稳定性和可靠性。

同时,我们也应该不断学习和探索,掌握更多的测试技巧和方法,为软件开发贡献自己的力量。

总之,Junit测试是软件开发过程中不可或缺的一部分,希望通过本次实验,能够对Junit测试有更深入的了解,为我们的软件开发工作带来更大的帮助。

创建自动运行的JUnit单元测试框架

创建自动运行的JUnit单元测试框架
简称 ” 自动框 架 ” 。 ) @D cm ne ou etd
@R t n i (a e R t n i P l y e e t n vf = e e t n oc . o u o i @ Ta g t v le Elre t p M E I0) r e ( au - e n n Ty e. 1 a )
2 通知机制的实现 。 U i . J nt 单元测试完成 后触发通知 . 如发 A d 。 I 获得被测试类的名称和被测试 的方法 ・从而 。。。T 。 。 c 送电子邮件 .或短信通知 。 3 执行 J n 单元测试 的引擎 。 . Uj t 自动框架 能在设定的时间点 可 以获得被测试类上的注释 A d u t n。。。 A h 这样 t 自动框架就 可 以根据 A d h 。。。A 。 定义 的作者信息进行相关的操作 了。
代码可能相互依赖 .因此 .整个项 目的单元测试在所有开发小 组成 员提交 当日编写的代码 之后 才能进行 。因此 ・多人参与的 项 目的单元测试的理想情况是 .在开发过程中 ,整个项 目的单 元测试能在一个设定 的时间上 自动运行 .根据源代码 中声明的
2 A ntt TsCas 表示 J nt 元测试类测试哪一个类 . noa d etl e s Ui 单
‘‘
J n t 元测 U i单

如 钲
7去掉或注释在调试过程中加入的调试代码 ,

一般测试类 的公有方法 )的小粒度功能测试 。 读者大概对上述 问题 已有 了自己答 案。-4 "
试 - 有 效 地 提 结束 . f以
高代 码 质 量 , 自
8调试. . 根据异常的 提示修正错误. 转向第 新编写的类什么时 候才 算完成呢7 至少应该通过
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分析JUnit 框架源代码理解JUnit 测试框架实现原理和设计模式2009 年5 月31 日本文细致地描述了JUnit 的代码实现,在展示代码流程UML 图的基础上,详细分析JUnit 的内部实现代码的功能与机制,并在涉及相关设计模式的地方结合代码予以说明。

另外,分析过程还涉及Reflection 等Java 语言的高级特征。

概述在测试驱动的开发理念深入人心的今天,JUnit 在测试开发领域的核心地位日渐稳定。

不仅Eclipse 将JUnit 作为默认的IDE 集成组件,而且基于JUnit 的各种测试框架也在业内被广泛应用,并获得了一致好评。

目前介绍JUnit 书籍文章虽然较多,但大多数是针对JUnit 的具体应用实践,而对于JUnit 本身的机制原理,只是停留在框架模块的较浅层次。

本文内容完全描述JUnit 的细致代码实现,在展示代码流程UML 图的基础上,详细分析JUnit 的内部实现代码的功能与机制,并在涉及相关设计模式的地方结合代码予以说明。

另外,分析过程还涉及Reflection 等Java 语言的高级特征。

本文的读者应该对JUnit 的基本原理及各种设计模式有所了解,主要是面向从事Java 相关技术的设计、开发与测试的人员。

对于C++,C# 程序员也有很好的借鉴作用。

回页首Junit 简介JUnit 的概念及用途JUnit 是由Erich Gamma 和Kent Beck 编写的一个开源的单元测试框架。

它属于白盒测试,只要将待测类继承TestCase 类,就可以利用JUnit 的一系列机制进行便捷的自动测试了。

JUnit 的设计精简,易学易用,但是功能却非常强大,这归因于它内部完善的代码结构。

Erich Gamma 是著名的GOF 之一,因此JUnit 中深深渗透了扩展性优良的设计模式思想。

JUnit 提供的API 既可以让您写出测试结果明确的可重用单元测试用例,也提供了单元测试用例成批运行的功能。

在已经实现的框架中,用户可以选择三种方式来显示测试结果,并且显示的方式本身也是可扩展的。

JUnit 基本原理一个JUnit 测试包含以下元素:表 1. 测试用例组成操作步骤:将B 通过命令行方式或图形界面选择方式传递给R,R 自动运行测试,并显示结果。

JUnit 中的设计模式体现设计模式(Design pattern)是一套被反复使用的、为众人所知的分类编目的代码设计经验总结。

使用设计模式是为了可重用和扩展代码,增加代码的逻辑性和可靠性。

设计模式的出现使代码的编制真正工程化,成为软件工程的基石。

GoF 的《设计模式》一书首次将设计模式提升到理论高度,并将之规范化。

该书提出了23 种基本设计模式,其后,在可复用面向对象软件的发展过程中,新的设计模式亦不断出现。

软件框架通常定义了应用体系的整体结构类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。

因此,设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,JUnit 就是其中的优秀代表。

设计模式是JUnit 代码的精髓,没有设计模式,JUnit 代码无法达到在小代码量下的高扩展性。

总体上看,有三种设计模式在JUnit 设计中得到充分体现,分别为Composite 模式、Command 模式以及Observer 模式。

回页首一个简单的JUnit 程序实例我们首先用一个完整实例来说明JUnit 的使用。

由于本文的分析对象是JUnit 本身的实现代码,因此测试类实例的简化无妨。

本部分引入《JUnit in Action 》中一个HelloWorld 级别的测试实例,下文的整个分析会以该例子为基点,剖析JUnit 源代码的内部流程。

待测试类如下:图 1. 待测试代码该类只有一个add 方法,即求两个浮点数之和返回。

下面介绍测试代码部分,本文以JUnit3.8 为实验对象,JUnit4.0 架构类同。

笔者对原书中的测试类做了一些修改,添加了一个必然失败的测试方法testFail,目的是为了演示测试失败时的JUnit 代码流程。

完整的测试类代码如下:图 2. 测试类代码TestCalculator 扩展了 JUnit 的 TestCase 类,其中 testAdd 方法就是对 Calculator.add 方法的测试,它会在测试开始后由JUnit 框架从类中提取出来运行。

在 testAdd 中,Calculator 类被实例化,并输入测试参数 10 和 50,最后用 assertEquals 方法(基类 TestCase 提供)判断测试结果与预期是否相等。

无论测试符合预期或不符合都会在测试工具TestRunner 中体现出来。

实例运行结果:图 3. 实例运行结果从运行结果中可见:testAdd 测试通过(未显示),而testFail 测试失败。

图形界面结果如下:图 4. 测试图形结果回页首JUnit 源代码分析JUnit 的完整生命周期分为3 个阶段:初始化阶段、运行阶段和结果捕捉阶段。

图 5. JUnit 的完整生命周期图(查看大图)初始化阶段(创建Testcase 及TestSuite)图 6. JUnit 的main 函数代码初始化阶段作一些重要的初始化工作,它的入口点在junit.textui.TestRunner 的main 方法。

该方法首先创建一个TestRunner 实例aTestRunner。

之后main 函数中主体工作函数为TestResult r = aTestRunner.start(args) 。

它的函数构造体代码如下:图7. junit 的start(String[]) 函数我们可以看出,Junit 首先对命令行参数进行解析:参数“ -wait ”(等待模式,测试完毕用户手动返回)、“ -c ”,“ -v ”(版本显示)。

-m 参数用于测试单个方法。

这是JUnit 提供给用户的一个非常轻便灵巧的测试功能,但是在一般情况下,用户会像本文前述那样在类名命令行参数,此时通过语句:将测试类的全限定名将传给String 变量testcase 。

然后通过:将对testCase 持有的全限定名进行解析,并构造TestSuite 。

图8. getTest() 方法函数源代码TestSuite 的构造分两种情况( 如上图):∙A:用户在测试类中通过声明Suite() 方法自定义TestSuite 。

∙B:JUnit 自动判断并提取测试方法。

JUnit 提供给用户两种构造测试集合的方法,用户既可以自行编码定义结构化的TestCase 集合,也可以让JUnit 框架自动创建测试集合,这种设计融合其它功能,让测试的构建、运行、反馈三个过程完全无缝一体化。

情况A:图9. 自定义TestSuite 流程图当suite 方法在test case 中定义时,JUnit 创建一个显式的test suite,它利用 Java 语言的 Reflection 机制找出名为SUITE_METHODNAME的方法,Reflection 是Java 的高级特征之一,借助Reflection 的API 能直接在代码中动态获取到类的语言编程层面的信息,如类所包含的所有的成员名、成员属性、方法名以及方法属性,而且还可以通过得到的方法对象,直接调用该方法。

JUnit 源代码频繁使用了Reflection 机制,不仅充分发挥了Java 语言在系统编程要求下的超凡能力,也使JUnit 能在用户自行编写的测试类中游刃有余地分析并提取各种属性及代码,而其它测试框架需要付出极大的复杂性才能得到等价功能。

若JUnit 无法找到siute 方法,则抛出异常,流程进入情况B 代码;若找到,则对用户提供的suite 方法进行外部特征检验,判断是否为类方法。

最后,JUnit 自动调用该方法,构造用户指定的TestSuite:情况B:图10. 自动判断并提取TestSuite 流程图当suite 方法未在test case 中定义时,JUnit 自动分析创建一个test suite 。

处进入TestSuite(Class theclass) 方法为TestSuite 类的构造方法,它能自动分析theclass 所描述的类的内部有哪些方法需要测试,并加入到新构造的TestSuite 中。

代码如下:图11. TestSuite 函数代码TestSuite 采用了Composite 设计模式。

在该模式下,可以将TestSuite 比作一棵树,树中可以包含子树(其它TestSuite),也可以包含叶子(TestCase),以此向下递归,直到底层全部落实到叶子为止。

JUnit 采用Composite 模式维护测试集合的内部结构,使得所有分散的TestCase 能够统一集中到一个或若干个TestSuite 中,同类的TestCase 在树中占据同等的位置,便于统一运行处理。

另外,采用这种结构使测试集合获得了无限的扩充性,不需要重新构造测试集合,就能使新的TestCase 不断加入到集合中。

在TestSuite 类的代码中,可以找到:此即为内部维护的“子树或树叶”的列表。

红框内的代码完成提取整个类继承体系上的测试方法的提取。

循环语句由Class 类型的实例theClass 开始,逐级向父类的继承结构追溯,直到顶级Object 类,并将沿途各级父类中所有合法的testXXX() 方法都加入到TestSuite 中。

合法testXXX 的判断工作由:完成,实际上该方法还把判断成功的方法转化为TestCase 对象,并加入到TestSuite 中。

代码如下图:图12. addTestMethod 函数代码首先通过String name= m.getName(); 利用Refection API 获得Method 对象m 的方法名,用于特征判断。

然后通过方法中的来判别方法名是不是以字符串“ test ”开始。

而代码:用于在逐级追溯过程中,防止不同级别父类中的testXXX() 方法重复加入TestSuite 。

对于符合条件的testXXX() 方法,addTestMethod 方法中用语句:将testXXX 方法转化为TestCase,并加入到TestSuite 。

其中,addTest 方法接受Test 接口类型的参数,其内部有countTestCases 方法和run 方法,该接口被TestSuite 和TestCase 同时实现。

这是Command 设计模式精神的体现,Command 模式将调用操作的对象与如何实现该操作的对象解耦。

在运行时,TestCase 或TestSuite 被当作Test 命令对象,可以像一般对象那样进行操作和扩展,也可以在实现Composite 模式时将多个命令复合成一个命令。

相关文档
最新文档