• Junit学习


     Junit 的几种注解:

      1.@Test: 测试方法

        a)(expected=XXException.class)如果程序的异常和XXException.class一样,则测试通过
        b)(timeout=100)如果程序的执行能在100毫秒之内完成,则测试通过

      2.@Ignore: 被忽略的测试方法:加上之后,暂时不运行此段代码

      3.@Before: 每一个测试方法之前运行

      与@BeforeClass的区别在于,@Before不止运行一次,它会在每个用例运行之前都运行一次。主要用于一些独立于用例之间的准备工作。比如两个用例都需要读取数据库里的用户A信息,但第一个用例会删除这个用户A,而第二个用例需要修改用户A。那么可以用@BeforeClass创建数据库连接。用@Before来插入一条用户A信息。
    注意:必须是public void,不能为static。不止运行一次,根据用例数而定。

      4.@After: 每一个测试方法之后运行

      5.@BeforeClass: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分before,是所有测试方法

      当我们运行几个有关联的用例时,可能会在数据准备或其它前期准备中执行一些相同的命令,这个时候为了让代码更清晰,更少冗余,可以将公用的部分提取出来,放在一个方法里,并为这个方法注解@BeforeClass。意思是在测试类里所有用例运行之前,运行一次这个方法。例如创建数据库连接、读取文件等。 方法名可以任意,但必须是public static void,即公开、静态、无返回。这个方法只会运行一次。

      6.@AfterClass: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区分 @After

      7.@Runwith
       
      8.@Parameters
      用于使用参数化功能。
     
    首先要分清几个概念:测试方法、测试类、测试集、测试运行器。
     
    其中测试方法就是用@Test注解的一些函数。测试类是包含一个或多个测试方法的一个**Test.java文件,测试集是一个suite,可能包含多个测试类。测试运行器则决定了用什么方式偏好去运行这些测试集/类/方法。
     
    而@Runwith就是放在测试类名之前,用来确定这个类怎么运行的。也可以不标注,会使用默认运行器。
     
    常见的运行器有:
     
    1. @RunWith(Parameterized.class) 参数化运行器,配合@Parameters使用junit的参数化功能
       进行单元测试的时候,通常一个方法需要好几个case进行测试,Junit提供参数化便于我们对方法进行多种参数的组合测试
    2.@RunWith(Suite.class)
    @SuiteClasses({ATest.class,BTest.class,CTest.class})
     
    测试集运行器配合使用测试集功能
     
    3.@RunWith(JUnit4.class)
     
    junit4的默认运行器
     
    4.@RunWith(JUnit38ClassRunner.class)
     
    用于兼容junit3.8的运行器
     
    5.一些其它运行器具备更多功能。例如@RunWith(SpringJUnit4ClassRunner.class)集成了spring的一些功能

    Junit4包含下面4中测试运行器:
    运行器 目的
    org.junit.internal.runners.JUnit38ClassRunner 为了向后兼容Junit3.8的运行器
    org.junit.runners.JUnit4 Junit4的测试运行器
    org.junit.runners.Parameterized 可以使用不同参数来运行相同测试集的运行器
    org.junit.runners.Suite 包含不同测试的容器

     

    编写测试类的原则: 

        ①测试方法上必须使用@Test进行修饰

            ②测试方法必须使用public void 进行修饰,不能带任何的参数

            ③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开

            ④测试类所在的包名应该和被测试类所在的包名保持一致

            ⑤测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖

            ⑥测试类使用Test作为类名的后缀(不是必须)

            ⑦测试方法使用test作为方法名的前缀(不是必须)

  • 相关阅读:
    发布在Xilinx 嵌入式系统中文论坛的旧帖子
    【分享】MPSoC,XEN虚拟机运行裸核应用程序(baremetal, standalone)的中断延迟
    【分享】 在Vivado里关闭R5/GPU,降低Xilinx MPSoC的功耗
    python实现单链表
    Flink 作业问题分析和调优实践
    flink 有状态 udf引发的大坑一
    flink checkpoint 在 window 操作下 全局配置失效的问题
    python实现十大经典排序算法
    Flink on yarn 常见错误
    搭建Spark所遇过的坑
  • 原文地址:https://www.cnblogs.com/ZTPX/p/10075910.html
Copyright © 2020-2023  润新知