zoukankan      html  css  js  c++  java
  • 15.junit测试类使用及注解

     1.junit简介

    JUnit是一个Java语言的单元测试框架,可以大大缩短你的测试时间和准确度。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

     

    2.实现junitDemo示例

    2.1首先创建一个project:

     

    2.2然后输入项目名,点击finish:

     

    2.3然后在src里创建我们要测试的mathDemo类:

     

    2.4输入mathDemo类名,点击finish:

     

    2.5 matchDemo类定义如下:

    package com.my.mathdemo;
    
    public class mathDemo {
        public int add(int a,int b)
        {
            return a+b;
        }
        public int multiply(int a,int b)
        {
            return a*b;
        }
    }

    接下来我们便来创建junit,来测试mathDemo类的add和multiply方法

    2.6 然后我们创建一个junit测试类

     

    2.7输入junit名,点击finish:

     

    2.8 TestMyMath测试类如下所示:

    public class TestMyMath {
    
        @Test
        public void testAdd() {
            mathDemo math = new mathDemo();
            assertEquals(math.add(11, 5), 16);     //测试11+5是否等于16
    
            assertEquals(math.add(3, 5), 9);       //故意写个错误的加法测试
        }
    
        @Test
        public void testMultiply() {
            mathDemo math = new mathDemo();
            assertEquals(math.multiply(10, 5), 50);    //测试10*5是否等于50
        }
    }

    在上面,我们故意写了一个错误的测试,然后run运行后,如下图所示,可以看到报错log:

     

    3.为什么测试方法前面要加@Test?

    这是jdk1.5新增加的注解功能,并且对于junit类而言,每个方法前的注解必须存在,否则会报错,因为编译器不知道这个方法是用来测试哪个用途上.

    而@Test表示该方法为测试方法,除了@Test外还有:

    • @BeforeClass  : 该方法表示启动测试类对象测试之前启动的方法, 所以该方法必须是static 修饰的(可以通过类名直接访问).一般用来打开配置文件,初始化资源等
    • @AfterClass   :该方法表示测试类对象测试完成之后启动的方法, 所以该方法必须是static 修饰的(可以通过类名直接访问).一般用来关闭数据库,结束资源等
    • @Before          :该方法表示调用每个测试方法前都会被调用一次
    • @After             :该方法表示调用每个测试方法后都会被调用一次
    • @Ignore          :已经被忽略的测试方法 ,我们测试的话,会自动过滤掉 

     

    4.而JAVA内置注解有三种(除此外,还有其它注解,后面遇到在详细补充)

    • @Deprecated :   表示该方法已被弃用(一般表示该方法不适合当前版本),一般会有最新的方法来替代它
    • @Override:         覆盖父类方法
    • @Suppvisewarning:    忽略警告,比如我们定义了一个未使用的变量,或者调用一个已经被弃用的方法(通过@Deprecated声明的方法),都会出现警告,通过该注解则可以忽略掉

    @Suppvisewarning常用的参数有:

    • @SuppressWarnings("all")  :         告诉编译器忽略掉所有警告
    • @SuppressWarnings("unused")  : 告诉编译器忽略掉未定义了未使用的变量
    • @SuppressWarnings("unchecked")  : 告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
    • @SuppressWarnings("serial")  :  如果编译器出现这样的警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long  使用这个注释将警告信息去掉。
    • @SuppressWarnings("deprecation")  : 如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。 使用这个注释将警告信息去掉。
    • @SuppressWarnings("unchecked", "deprecation")  : 告诉编译器同时忽略unchecked和deprecation的警告信息。

    如下图所示,我们定义一个未使用的int i,则会出现警告:

     

    双击后,可以看到已经忽略警告:

     

    5.如果我们不想在junit里写测试方法.直接运行被测试的方法

    在被测方法前面添加@Test即可,如下所示,比如测试DomParseTest类的DomTest方法:

     

    未完待续,下章学习 16.XML语法、CDATA、约束(DTD、Schema)讲解

  • 相关阅读:
    DataTable distinct 去重复
    EF 实体字段设置主键和自增
    select into from 和 insert into select 的用法
    EF的 JOIN操作
    Linq左关联 右关联 内关联
    MySQL MGR集群搭建
    论用户体验测试:牛逼的功能千篇一律,好的体验万里挑一
    Spring Cloud使用总结
    数据采集与分析的那些事——从数据埋点到AB测试
    如何能低成本地快速获取大量目标用户,而不是与竞争对手持久战?
  • 原文地址:https://www.cnblogs.com/lifexy/p/11389141.html
Copyright © 2011-2022 走看看