• JUnit——(二)注解


    1. 两种错误:Error和Failure

    Error是代码错误

    @Test
        publicvoid testAdd() {
            int z=new T().add(5,3);
            assertEquals(8,z);
            int a=8/0;  //这一句是有错误的
        }

    Failure是测试失败

    @Test
        publicvoid testAdd() {
            int z=new T().add(5,4); //这里修改了数值,把4该为3就正确了 
            assertEquals(8,z);
        }

    2. 常用注解:

    1. @Test : 测试方法,测试程序会运行的方法,后边可以跟参数代表不同的测试,如(expected=XXException.class) 异常测试,(timeout=xxx)超时测试

    @Test(expected=*.class)

    在JUnit4.0之前,对错误的测试,我们只能通过fail来产生一个错误,并在try块里面assertTrue(true)来测试。现在,通过@Test元数据中的expected属性。expected属性的值是一个异常的类型

    @Test(timeout=xxx):
    该元数据传入了一个时间(毫秒)给测试方法,
    如果测试方法在制定的时间之内没有运行完,则测试也失败。


    2. @Ignore : 被忽略的测试方法

    该元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现,或者测试的方法已经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而在本地测试的时候,数据库并没有连接),那么使用该标签来标示这个方法。同时,你可以为该标签传递一个String的参数,来表明为什么会忽略这个测试方法。比如:@lgnore(“该方法还没有实现”),在执行的时候,仅会报告该方法没有实现,而不会运行测试方法。


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

    4. @After : 每一个测试方法之后运行
    5. @BeforeClass: 所有测试开始之前运行
    6. @AfterClass: 所有测试结束之后运行

    例如:

    package com.junit4.cc.test;
    
    importstatic org.junit.Assert.*;
    importstatic org.hamcrest.Matcher.*;
    
    import org.junit.Test;
    import com.junit4.cc.*;
    
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.AfterClass;
    import org.junit.After;
    import org.junit.Ignore;
    
    
    publicclass TTest {
        
        @BeforeClass  //的所有方法运行之前运行。
        public static void beforeClass(){
            System.out.println("------------beforeClass");
        }
        
        @AfterClass   //在所有方法运行之后运行
        public static void afterClass(){
            System.out.println("-------------afterClass");
        }
        
        @Before   //每个测试方法运行之前运行
        public void before(){
            System.out.println("=======before");
        }
        
        @After   //每个测试方法运行之后运行
        public void after(){
            System.out.println("=======after");
        }
    
        @Test
        publicvoid testAdd() {
            int z=new T().add(5,3);
            assertEquals(8,z);
            System.out.println("test Run through");
        }
        
        @Test ()
        public void testdivision(){
                  System.out.println("in Test Division");
    
        }
    
        @Ignore   //表示这个方法是不被运行的
        @Test
        (expected=java.lang.ArithmeticException.class,timeout=100)         //timeout表示要求方法在100毫秒内运行完成,否则报错
        public void testDivide(){
            int z =new T().divide(8,2);
        }
    }    

     运行结果如下:

  • 相关阅读:
    朴英敏: 用crash工具分析Linux内核死锁的一次实战【转】
    ext3,ext4,xfs和btrfs文件系统性能对比【转】
    STM32MP157——Remoteproc和RPMsg【转】
    使用edac工具来检测服务器内存故障.【转】
    面试题-python 什么是生成器(generator)?
    面试题-python 什么是迭代器(Iterator)?
    面试题-python 浅拷贝和深拷贝(copy模块)
    selenium+python自动化104-如何获取隐藏元素text文本
    面试题-websocket 接口如何测试?
    jmeter压测学习47-发soap请求测试webservice接口
  • 原文地址:https://www.cnblogs.com/lesleysbw/p/6286002.html
Copyright © 2020-2023  润新知