• 技术文章 >Java >java教程

    图文Java之Junit入门案例(代码)

    高洛峰高洛峰2017-03-12 09:29:46原创481
    详解Java之Junit入门案例(代码)

    直接上代码演示:

    比方说你现在写了一个ArrayList类的方法:

    public class ArrayList implements List { 
        private int size = 0;
        
        private Object[] elementData = new Object[100];
        
        public void add(Object o){
            
        }
        public void add(int index, Object o){
            
        }
        
        public Object get(int index){
            return Object;
        }
        
        public Object remove(int index){
            return Object;
        }
        
        public int size(){
            return -1;
        }  
    }

    现在要测试的话怎么办呢?这个时候Junit利器就可以用到了;

    首先我们先建立一个Junit类:

    图文Java之Junit入门案例(代码)

    如果你直接在想要测试的class上右键的话可以直接勾选出测试要方法如:

    图文Java之Junit入门案例(代码)

    接着就是直接开始在里面加方法了:

    public class ArrayListTest {
    
       // 这里的@Test是必须的注释,就是告诉JUnit这里就是一个测试方法
        @Test
        public void testGet() {
            static Object[] Data = new Object[]{1,2,3,4,5,6,7,8};
                ArrayList test;
                    // 添加数据到test中
                    .........
                    ......... 
    
                    //测试test 这里要说一下,
                    //出了要assertEqual 判断值是否相等的话,其实还有assertFalse,assertNull等方法判断
                    assertEqual(Data[1],test.get(1));
        }    
    }

    对,没错就是这么简单。如果你的类没问题的话,应该能返回这样的图:

    图文Java之Junit入门案例(代码)

    但是,有没有发现,如果你在测试其他方法,如add,remove的话,都是要有一个预先填充了数据的ArrayList吧。难道我每次进行测试都需要执行这些吗?

    这样就太冗余了。这个时候,JUnit里自有高招:

    public class ArrayListTest {
    
        static Object[] Data = new Object[]{1,2,3,4,5,6,7,8};
        ArrayList test;
           
        //这个before注释可以理解成:
        //在执行每个@Test修饰的方法前都先要执行这个setUp,等于前置条件一样
        @Before
        public void setUp() throws Exception{
            test = new ArrayList();
            for(Object data: Data){
                test.add(data);
            }
        }
            //test function ;
    
    }

    现在的话好像差不多行了,但是当有多个测试类的时候怎么办,逐个运行?这不就跟创建main方法测试那样差不多吗?

    所以Junit又提供了一个测试套件组:

    //你现在有3个测试类
    public class Test1{
        @Test
        public void test(){
            //...Test1
        }
    }
    
    public class Test2{
        @Test
        public void test(){
            //...Test2
        }
    }
    public class Test3{
        @Test
        public void test(){
            //...Test3
        }
    }
    
    
    //创建一个测试套件类(测试套件可以互相叠加的):
    @RunWith(Suite.class)
    @Suite.SuiteClasses({test1.class,test2.class,test3.class
                        })
    public class SuitTest {
      //必须是public 修饰的,空类
    }

    除了上面写的注释其实还有蛮多的,只是还没用到就先不说了。(太渣用不到这些,逃。。),我就贴出来让看官们瞅瞅先:

    图文Java之Junit入门案例(代码)

    也就说这么多吧,仅是入门而已。并没有什么高深的技术啊,思想什么的。简简单单: -/。

    在最后想分享一句话:

    测试用例是用来证明你是没有错的,而不是证明你是对的。

    我个人觉得这话真的是说到心坎里去了。

    以上就是图文Java之Junit入门案例(代码)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:Java Junit
    上一篇:使用Jdom读取XML文件方法 下一篇:分析spring web启动时IOC源码
    大前端线上培训班

    相关文章推荐

    • 理解java8中java.util.function.*pojo反射新方法(附代码)• 浅析安卓app和微信授权登录及分享完整对接(代码分享)• 教你一招搞定时序数据库在Spring Boot中的使用• 一招教你使用java快速创建Map(代码分享)• PlayFramework 完整实现一个APP(十一)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网