junit 学习笔记

来源:互联网 发布:js object类型转时间戳 编辑:程序博客网 时间:2024/06/06 04:19

第一种方法:
  设计一个测试类继承自TestCase:
 测试类中写出对一个类函数测试对应的测试函数。
 使用assertEquals(期望值,函数调用返回值);
  设计一个拥有主函数的类用来使测试用例跑起来
 TestCase test1 = new 测试类("测试名"){//重载runTest()函数}
 showResult(test1.run());//showResult是自己写的一个函数
 TestCase test2 = new 测试类("测试名"){//重载runTest()函数}
 showResult(test2.run());
      showResult函数根据TestResult 类的errorCount()方法(junit类)统计出错个数并输出
  这是一种静态指定的方式指定测试函数通过重载runTest()调用自己的测试函数
第二种方法:
    在new 测试类("函数名");//无需重载runTest()函数,通过反射机制读取函数并调用
    showResult(test1.run());
//总结:上面的方法其实就是TestCase当我们调用TestCase的run()函数时,这个函数调用runTest()函数,
 我们可以重载该函数则执行我们的调用,,我们不重载时将会采用反射机制去根据用例方法名调用。
 执行的结果统计信息会放到TestResult类中 ,Enumeration 中

第三种方法:测试套件
 前面的步骤一样,
 但在设计完测试类后,编写main函数时直接使用junit.textui.TestRunner.run(类.class)//这个套件将
 帮助你做一切活动直接输出统计信息。
 你甚至可以省去main函数类,在命令行输入java junit.textui.TestRunner.run 测试类名
  还提供 swingui,和awtui两种图形界面。
--------------------------------------------------
suite
 TestCase与TestSuite是组合的模式关系
 在使用TestRunner的时候实际上就使用了TestSuite,只不过是自己使用一个默认的。
   调用关系是:TestRunner调用TestSuite的run方法,然后suite调用TestCase的run方法。run调用runTest.
  复杂的关系是这样的:一个TestCase有多个测试方法(函数),多个TestCase可以放到一个TestSuite中。
     suite具有发射功能,能够将一个类中的所有测试方法反射到一个suite中,所以只需要写入类名.class即可
     若我们在TestCase类中没有提供则TestRunner自动建立如下函数:
 public static Test suite() {
       return new TestSuite(MathTool.class);
  }
 我们当然也可以自己建立在自己继承TestCase的类中写入这个静态的方法即可。
  让我们这样做的唯一理由就是:系统建立的TestSuite方法只能反射以test开头的测试方法,
   如果我们的不是我们要用TestSuite对象的addTest添加相应的方法。
    增加的方法:addTest(new 类名("测试方法名"));
         你还可以创建一个suite包含所有TestCase类这就要使用addTestSuite方法了。
  public static Test suite() {
       TestSuite suite= new TestSuite();
       suite.addTestSuite(TestCase1.class);
        suite.addTestSuite(TestCase2.class);
        return suite;
    }
          从而使得一个可运行所以TestCase,而无需单个运行。
  

原创粉丝点击