zoukankan      html  css  js  c++  java
  • Java测试Junit

      Junit就是做测试用的,想想平常我们是怎么测试我们的方法或者类的,是不是在main方法里面去调用?这样有缺点:

    1.每次都要在main方法里面写测试,假如我要上线新系统,里面有1000个方法需要测试,那我写一千个?测试完再删掉?

    2.main方法都是写功能代码,功能逻辑代码和测试代码放在一起不太好

      为了解决这个测试的问题,Junit应运而生。我们来讲讲Junit的用法吧

    Idea编译器默认安装了Junit,支持Junit345的创建,我们这里介绍一下3和4

    一、Junit3

    Junit3是Java5之前的东西,特点:

    1.类必须继承TestCase

    2.方法必须是public void 且必须以test开头,抛出异常

    package com.StadyJava.day2;
    
    import junit.framework.TestCase;
    
    public class JunitDemo extends TestCase {
    
        public void testAdd() throws Exception{
            System.out.println("测试添加");
        }
        public void testDelete() throws Exception{
            System.out.println("测试添加");
        }
    }

    在方法上右击可以单独运行,也可以右击类,直接运行类

    二、Junit4

     Junit4是Java5之后的东西,特点:

    1.支持注解

    2.方法必须是public void 不是必须test开头(但是一般还是test开头,看着规范好看点),抛出异常,方法必须写注解

    package com.StadyJava.day2;
    
    
    import org.junit.*;
    
    public class JunitDemo {
    
    //    介绍几个常用的注解
    //    @Test:测试用的常用注解
    //    @Before:测试开始之前执行,每个方法都执行一次
    //    @After:测试结束之后执行,每个方法都执行一次
    //    @BeforeClass:测试开始之前执行,只执行一次,必须加static
    //    @AfterClass:测试结束之后执行,只执行一次,必须加static
    
        @BeforeClass
        public static void staticinit() throws Exception{
            System.out.println("staticinit");
        }
        @AfterClass
        public static void staticdestory() throws Exception{
            System.out.println("staticdestory");
        }
        @Before
        public  void init() throws Exception{
            System.out.println("初始化");
        }
        @After
        public  void destory() throws Exception{
            System.out.println("销毁");
        }
    
        @Test
        public void testAdd() throws Exception{
            System.out.println("测试添加");
        }
        @Test
        public void testDelete() throws Exception{
            System.out.println("测试删除");
        }
    }

    三、断言

      上面学习了Junit的基本创建,现在来学习一下断言,断言其实用的不是特别多,还是了解一下

    断言:

    期望值:希望的结果是什么

    实际值:实际得到的结果是多少

    断言成功:期望值和实际值相同,显示绿条

    断言失败:期望值和实际值不同,显示红条

    下面列举了一些常用的断言方法:

     @Test
        public void DuanYan() {
    
            //方法1 断言两个值是否相等
            //message:断言失败提示的信息
            //expecter:期望值
            //actual:实际值
            Assert.assertEquals("断言失败,两个值不等",4,2+2);
    
            //方法2 断言两个对象的地址相同,地址相同就是同一个对象
            Assert.assertSame("断言失败,地址不同不是一个对象",1,1);
            //方法3 断言两个对象的地址不同,上面方法的反例面
            Assert.assertNotSame("断言失败,地址相同了是同一个对象",1,2);
            //方法4 断言condition是True
            Assert.assertTrue("断言失败,不是True",true);
            //方法5 断言condition是False
            Assert.assertFalse("断言失败,不是False",false);
            //方法6 断言object是null
            Assert.assertNull("断言失败,不是null",null);
            //方法7 断言object不是null
            Assert.assertNotNull("断言失败,是null",1);
    
            //@Test(expected = ArithmeticException.class) 期望该方法报错,报ArithmeticException错误,比如除数为0
            //@Test(timeout = 2000) 期望该方法在2秒之内完成
    
    
        }
  • 相关阅读:
    JS中的函数声明存在的“先使用,后定义”
    JS原型与原型链终极详解
    Angular--页面间切换及传值的四种方法
    Angularjs Controller 间通信机制
    angularjs 中使用 service 在controller 之间 share 对象和数据
    CSS中!important的使用
    angularjs checkbox 框的操作
    纯CSS气泡框实现方法探究
    AngularJS 实现页面滚动到底自动加载数据的功能
    AngularJS的Filter用法详解
  • 原文地址:https://www.cnblogs.com/yunquan/p/10037772.html
Copyright © 2011-2022 走看看