abstract class ParentRunner<T> extends Runner implements Filterable,Sortable 本节介绍排序和过滤. (尽管JUnit4.8.2源码分析-6.1 排序和过滤中演示了客户使用排序和过滤的方式,也有些不明确其设计意图.可是.先读懂源码为妙.说不定看着看着就明确了. ) org.junit.runner.manipulation包 排序和过滤的相关类型.在org.junit.runner.manipulation包中.Sort…
假设要评选JUnit中最最重要的类型.或者说核心,无疑是org.junit.runners.model.Statement.Runner等类型看起来热闹而已. package org.junit.runners.model; /** * Represents one or more actions to be taken at runtime in the course * of running a JUnit test suite. */ public abstract class State…
标注@Rule TestRule是一个工厂方法模式中的Creator角色--声明工厂方法. package org.junit.rules; import org.junit.runner.Description; import org.junit.runners.model.Statement; public interface TestRule { Statement apply(Statement base, Description description); } 因为工厂方法apply有…
Description使用组合模式描写叙述一个測试树.组合模式中全部元素都是Composite对象. Description有成员变量private final ArrayList<Description>fChildren= newArrayList<Description>(); //无元素 保存其子结点.fChildren非空,所以不论什么子结点都是一个Composite,可是this. getChildren().size()为0的结点,其实就是叶子. 測试树 一颗測试树D…
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3876466.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. API 实例化 直接获得 natural() 自然序 usingToString() 字典序 指定 from(Comparator) 包装Comparator explicit(List) explicit(least, ... others) 指明这几个东西的顺序,只排它们 直接继承   其他…
1. TestClass // 源码:org.junit.runners.model.TestClass // 该方法主要提供方法校验和注解搜索 public class TestClass implements Annotatable{ private static final FieldComparator FIELD_COMPARATOR = new FieldComparator(); private static final MethodComparator METHOD_COMPAR…
SOFARPC源码解析系列: 1. 源码分析---SOFARPC可扩展的机制SPI 2. 源码分析---SOFARPC客户端服务引用 3. 源码分析---SOFARPC客户端服务调用 4. 源码分析---SOFARPC服务端暴露 5.源码分析---SOFARPC调用服务 6.源码分析---和dubbo相比SOFARPC是如何实现负载均衡的? 7.源码分析---SOFARPC是如何实现连接管理与心跳? 8.源码分析---从设计模式中看SOFARPC中的EventBus? 9.源码分析---SOFA…
1. Statement 抽象类Statement作为命令模式的Command,只有一个方法 各种Runner作为命令模式中的Invoker,将发出各种Statement,来表示它们运行JUnit测试的整个过程; org.junit.internal.runners.statement包中定义了Statement的子类(具体命令),来处理针对方法 的标注,如@Test,@Before,@After,@BeforeClass,@AfterClass; // org.junit.runners.mo…
1. TestRule TestRule和@Before,@After,@BeforeClass,@AfterClass功能类似,但是更加强大; JUnit 识别TestRule的两种方式: 方法级别:@Rule; 类级别:@ClassRule; TestRule的实现类: ErrorCollector ExpectedException ExternalResource TemporaryFolder TestName TestWatcher Timeout Verifier // org.j…
在上一章中,我们说到在之前的查找阶段我们已经获得了待选集seed,那么这一章我们就来讲如何将seed待选集过滤,以获得我们最终要用的元素. 其实思路本质上还是不停地根据token过滤,但compile这个函数将这些matcher(filter生成的闭包过滤函数)给编译成一个函数(这个效率和我们直接使用过滤函数差不多,关键是在后面),再保存这一个函数,以后遇到同样的selector就可以不用再编译,直接调用就可以了. 接下来我们看看compile的代码 compile = Sizzle.compi…