Junit原理详解三
来源:互联网 发布:sqlserver 统计表空间 编辑:程序博客网 时间:2024/06/06 03:36
我们以一个非常简单的TestCalculator类为例,只有一个测试方法:
Public class TestCalculator extends TestCase
{
}
当我们使用Run in Junit 的时候,之前说到过的几个核心类之间是怎么运行的呢?我们先看下基本过程:
TestRunner启动界面框 —》创建一个TestSuite––》创建一个TestResult—》执行testadd方法。
由于我们的TestCalculator测试类里面没有显式的suite方法,大部分情况下都是类似,这样的话,TestRunner创建了一个默认的TestSuite对象,看下图:
那么同时TestRunner还需要创建包含测试结果(成功,失败或出错)的TestResult对象,具体过程如下:
1.最开始的时候,TestRunner实例化了一个TestResult对象,在测试顺序执行的时候,这个对象将用于保存测试结果。
2.TestRunner向TestResult注册,就是add一个监听器,这样的话在执行测试过程中,TestRunner就可以收到各种事件,TestResult会广播如下方法:测试开始(startTest);测试失败(addFailure); 遇到测试错误(addError); 测试结束(endTest)
3.知道了这些事件后,TestRunner就可以随着测试的进行而显示进度条了,并且在失败或错误的时候显示出来。
4.TestRunner通过调用TestSuite的run(TestResult)方法来开始测试
5.TestSuite为它所拥有的每个Test Case实例调用run(TestResult)方法。
6.TestCase使用传递给它的TestResult实例来调用其run(Test)方法,并把自身作为参数传递给run方法,这样TestResult立马就可以用runBare()来回调它。
接着就是执行测试方法了:
这里需要说明的是对于每个TestCase都会调用runBare()方法,这里只有一个testAdd方法,所以只调用一次,请看下图:
1.runBare()方法将调用setUp, testAdd, teardown 方法,顺序执行。
2.如果调用3个方法的过程出现任何失败或错误,那么TestResult就会分别调用addFailure和addError来通知它的所有Listener。
3.这样TestRunner就会收到这些错误或失败,也会罗列出这些错误,否则进度条就是绿色的,让你知道测试方法没有问题。
4.当tearDown方法执行完后,测试也就完成了,TestResult会通过调用endTest把这个结果通告给所有的Listener。
- Junit原理详解三
- Junit原理详解一
- Junit原理详解二
- Junit原理详解四
- Junit原理
- junit(三)
- junit详解
- junit详解
- JUnit详解
- Junit详解
- Junit详解
- JUnit详解
- JUnit 详解
- Junit 详解
- Junit详解
- sift算法原理详解(三)
- Junit三分钟入门
- junit浅学笔记三
- 重庆大学软件学院2013级操作系统实验四:虚拟内存
- 【每日一剂】---ADB
- WSASocket()与Socket()的区别
- Mac——如何输入⌘、⌥、⇧、⌃、⎋等特殊字符
- boa研究学习(1):最开始基本的一些linux编程
- Junit原理详解三
- 二叉树的顺序存储
- Spring注解@ResponseBody
- WebService入门HelloWS
- java,http请求
- SLF4J和Logback日志框架详解
- Junit原理详解四
- objective c下的对象模型
- spring 与 mybatis整合,mybatis注解不起作用