JUnit和单元测试入门简介[3]

发表于:2010-04-01来源:作者:点击数: 标签:junitJUNITJunitJUnit单元
JUnit和单元测试入门简介[3] 单元测试方法 其中assertEquals(Object expcted,Object actual)内部逻辑判断使用equals()方法,这表明断言两个实例的内部哈希值是否相等时,最好使用该方法对相应类实例的值进行比较。而assertSame(Object expected,Object actua

  JUnit和单元测试入门简介[3]    单元测试方法

  其中assertEquals(Object expcted,Object actual)内部逻辑判断使用equals()方法,这表明断言两个实例的内部哈希值是否相等时,最好使用该方法对相应类实例的值进行比较。而assertSame(Object expected,Object actual)内部逻辑判断使用了Java运算符“==”,这表明该断言判断两个实例是否来自于同一个引用(Reference),最好使用该方法对不同类的实例的值进行比对。asserEquals(String message,String expected,String actual)该方法对两个字符串进行逻辑比对,如果不匹配则显示着两个字符串有差异的地方。ComparisonFailure类提供两个字符串的比对,不匹配则给出详细的差异字符。

  TestSuite测试包类——多个测试的组合

  TestSuite类负责组装多个Test Cases。待测得类中可能包括了对被测类的多个测试,而TestSuit负责收集这些测试,使我们可以在一个测试中,完成全部的对被测类的多个测试。

  TestSuite类实现了Test接口,且可以包含其它的TestSuites。它可以处理加入Test时的所有抛出的异常。

  TestSuite处理测试用例有6个规约(否则会被拒绝执行测试)

  A 测试用例必须是公有类(Public)

  B 测试用例必须继承与TestCase

  C 测试用例的测试方法必须是公有的( Public )

  D 测试用例的测试方法必须被声明为Void

  E 测试用例中测试方法的前置名词必须是test

  F 测试用例中测试方法误任何传递参数

  TestResult结果类和其它类与接口

  TestResult结果类集合了任意测试累加结果,通过TestResult实例传递个每个测试的Run()方法。TestResult在执行TestCase是如果失败会异常抛出

  TestListener接口是个事件监听规约,可供TestRunner类使用。它通知listener的对象相关事件,方法包括测试开始startTest(Test test),测试结束endTest(Test test),错误,增加异常addError(Test test,Throwable t)和增加失败addFailure(Test test,AssertionFailedError t)

  TestFailure失败类是个“失败”状况的收集类,解释每次测试执行过程中出现的异常情况。其toString()方法返回“失败”状况的简要描述

  3.6、JUnit一个实例

  在控制台中简单的范例如下:

  1、写个待测试的Triangle类,创建一个TestCase的子类ExampleTest:

  2、 ExampleTest中写一个或多个测试方法,断言期望的结果(注意:以test作为待测试的方法的开头,这样这些方法可以被自动找到并被测试)

  3、 ExampleTest中写一个suite()方法,它会使用反射动态的创建一个包含所有的testXxxx方法的测试套件:

  Junit本身的操作并没有什么特别的地方。这里提供了6种测试项目,分别针对不同的测试对象或者可以说是目标。

  test case:这个是最常用的,也就是对程序代码中类的测试。软件测试

  test suite:这个更高一级,可以一次行测试多个类。其效果与分别 进行多个testcase是相同的。

  jdbc fixture:这个是针对数据库链接的测试。(很少用,不大懂。)我学的是默认的jdbc的数据库。

  jndi fixture:这个相当于是一个容器测试。如果说主要的内容就是测试那些存放链接的fixture。

  在编程的时候,经常把一些常用的链接放在一个类似于容器的东东里面,这样,如果调用重复调用链接的话,可以同一调用容器地址,再具体指向里面的链接。这是否是一种管理呢。

原文转自:http://www.ltesting.net