【Junit】之 仿 junit 3.8.1 写 lite-junit

学习并仿写一个开源项目,O(∩_∩)O~~


Junit : 是一个简单的框架,能让程序员轻松的编写,并且自动化运行的单元测试。


自动化单元测试的特点:
(1) 自动执行

  - 启动以后能把所有的测试都运行
  - 一个测试的失败不影响后续测试的运行

(2) 可生成定制的报告

  - 哪些成功?哪些失败?有无异常?
  - 输出形式:xml,html,文本 …

(3) 运行速度快

(4) 测试脚本开发要简单




测试用例 最好 是一个对象


希望测试用例能有:
(1) 包含一段代码
(2) 能执行
(3) 能获取运行结果

so,测试用例最好是一个对象

这里写图片描述
这里写图片描述




测试应该是隔离的

(1) 一个单元测试的运行不应该影响另外一个单元测试
(2) 运行单元测试之前需要准备工作
(3) 运行单元测试之后需要清理工作

引生出:模板模式

这里写图片描述




遇到问题:一个TestCase 有多个测试方法,该如何创建、调用。


 (1)一个TestCase只包含一个方法
 (2)使用匿名类,重写runTest() 方法,则每个测试方法都对应一个TestCase
 (3)反射方法

这里写图片描述




遇到问题:一个或者多个问题


(1)到目前为止,框架只支持每次运行一个用户自定义的TestCase
(2)能不能“透明地”运行多个?
(3)调用方不应该关心是一个还是多个

PS :

引生出:组合模式

这里写图片描述
这里写图片描述




遇到问题:一个类中有多个测试方法(test1,test2,。。。),难道每次都要加进去?


这里写图片描述

解决: 约定忠于配置

核心代码

这里写图片描述
这里写图片描述




实现: Assert

    assertEquals(5, actual.num);

这里写图片描述




遇到问题: 如何保存测试用例运行时异常和断言失败?


这里写图片描述

分离测试用例和测试结果 : 收集参数模式

这里写图片描述

引入 : TestResult

首先:TestResult,在创建TestSuite之前就创建了,并以参数形式传入TestCase 和TestSuite

这里写图片描述
这里写图片描述




总结: 涉及到的设计模式:


  • Command模式 : 表达一个测试用例
  • Template Method : 实现数据的准备和清理
  • Composite : 屏蔽一个和多个的差别
  • Collect Parameter : 隔离测试用例和测试结果

这里写图片描述

这里写图片描述这里写图片描述这里写图片描述这里写图片描述这里写图片描述

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值