纸牌网站建设,深鑫辉网站建设,审美网站,永久免费的网页游戏转自:http://blog.sina.com.cn/s/blog_6cf812be0100wbhq.html nterface: Test 整个测试的的基础接口 Method 1: abstract int countTestCases() 这个方法主要是用来计算要运行的test case的数量的。 Method 2#xff1a;abstract void run(TestResult result) 这个方法主要是…转自:http://blog.sina.com.cn/s/blog_6cf812be0100wbhq.html nterface: Test 整个测试的的基础接口 Method 1: abstract int countTestCases() 这个方法主要是用来计算要运行的test case的数量的。 Method 2abstract void run(TestResult result) 这个方法主要是用来执行一个测试用例并且在测试结果的实例中收集它的测试结果。 ClassTestCase 定义abstract class TestCase extends Assert implements Test 继承了Assert类并且实现了Test接口。而且是个抽象类。 Class: TestSuite 定义class TestSuite implements Test; Test接口的实现类和TestCase一样. 但是TestSuite是一系列testcase的集合将所有要运行的testcase add到TestSuite。 观察一TestCase 和 TestSuite类都实现了Test 接口。 好处一由于当你给TestSuite增加一个对象时实际上增加的是Test而不只是个TestCase这样我们就既可以在TestSuite里面增加另一个TestSuite也可以加入一个TestCase。如果是TestCase那么就会运行那个单独的测试如果是TestSuite那么就运行一组测试。 如何实现那么是如何实现上面说的那个好处呢看下TestSuite的一个addtest方法就明白了 Public void addTest(Test test) 新增一个test到testsuite直接使用fTests.add(test)来新增。 这里可以新增的入参是Test接口而不是一个TestCase对象所以只要实现了Test接口的实现类包括TestCase和TestSuite都可以不断的增加下去。这样就引出了好处二和设计模式。 好处二当我们为自己的应用程序创建特殊的suite或组合出TestAll类非常容易。简单说明下TestAll类仅仅包含了一个静态的suite方法会注册需要定期执行的所有的Test对象(包括TestCase对象和TestSuite对象)。 Java设计模式Composite模式 定义把对象组合(composite)成树状结构来表示部分-整体层次关系Composite模式可以让客户一致的对待单个对象和对象的组合。 我们来看下Junit的Test接口和TestCase和TestSuite类是如何实现Composite模式的 先搞清楚Junit里面的部分-整体分别是什么这里单个的TestCase可以看作是部分把复合的TestCase(TestSuite)看作是整体看下面的图 我们可以看到这样的模式会带来另外一些好处 简化了JUnit的代码 JUnit可以统一处理组合结构TestSuite和单个对象TestCase。使JUnit开发变得简单容易因为不需要区分部分和整体的区别不需要写一些充斥着if else的选择语句。 好处三TestCase是个抽象实现类而且继承了Assert类这里为啥要继承Assert类呢因为在一个testcase中是肯定需要用的Assert断言的如果不继承Assert类那么testcase方法中要写成Assert.assert(),不是很简洁现在继承了Assert类后我们就可以在继承了TestCase类的测试类中直接assert(),使测试代码看得非常简洁和清楚。 定义了TestCase对象和TestSuite的类层次结构 基本对象TestCase可以被组合成更复杂的组合对象TestSuite而这些组合对象又可以被组合如我们上个例子这样不断地递归下去。客户代码中任何使用基本对象的地方都方便的使用组合对象大大简化系统维护和开发。 仔细看看Test接口的方法它存在一个是countTestCases方法它来统计这次测试有多少个TestCase另外一个方法run。还有一个参数TestResult它来统计测试结果。这里为啥存在一个run方法呢? 我们想想Junit在run testcase的时候需要把这些testcase的组成打包后成为请求发送到Junit Framework这样我们实现TestCase类的时候可以自由的实现run方法去打包发送请求。这样我们在写测试用例时候只需继承TestCase来完成run方法即可把测试结果记录到TestResult中这样的做法就好引出另外的Java设计模式。 Java设计模式Command模式 定义将一个请求封装成一个对象从而使你可用不同的请求对客户进行参数化对请求进行排队或记录请求日志...Command告诉我们可以为一个操作生成一个对象并给出它的一个execute执行方法。 run()就是我们的Command模式的Excecute方法: 我们可以看到这样的模式会带来另外一些好处 Command模式将实现请求的一方TestCase开发和调用一方JUnit Fromwork分离开。 Command模式可以将多个TestCase进行组合成一个复合命令实际你将看到TestSuit就是它的复合命令。转载于:https://www.cnblogs.com/daxiong2014/p/4501171.html