• JUnit test case 执行顺序


    转自:JUnit中按照顺序执行测试方式

    很多情况下,写了一堆的test case,希望某一些test case必须在某个test case之后执行。比如,测试某一个Dao代码,希望添加的case在最前面,然后是修改或者查询,最后才是删除,以前的做法把所有的方法都集中到某一个方法去执行,一个个罗列好,比较麻烦。比较幸福的事情就是JUnit4.11之后提供了MethodSorters,可以有三种方式对test执行顺序进行指定,如下:

        /**
         * Sorts the test methods by the method name, in lexicographic order, with {@link Method#toString()} used as a tiebreaker
         */
        NAME_ASCENDING(MethodSorter.NAME_ASCENDING),
    
        /**
         * Leaves the test methods in the order returned by the JVM. Note that the order from the JVM may vary from run to run
         */
        JVM(null),
    
        /**
         * Sorts the test methods in a deterministic, but not predictable, order
         */
        DEFAULT(MethodSorter.DEFAULT);

    可以小试牛刀一下:

    使用DEFAULT方式:

    package com.netease.test.junit;
    
    import org.apache.log4j.Logger;
    import org.junit.FixMethodOrder;
    import org.junit.Test;
    import org.junit.runners.MethodSorters;
    
    /**
     * User: hzwangxx
     * Date: 14-3-31
     * Time: 15:35
     */
    @FixMethodOrder(MethodSorters.DEFAULT)
    public class TestOrder {
        private static final Logger LOG = Logger.getLogger(TestOrder.class);
        @Test
        public void testFirst() throws Exception {
            LOG.info("------1--------");
        }
    
        @Test
        public void testSecond() throws Exception {
            LOG.info("------2--------");
    
        }
    
        @Test
        public void testThird() throws Exception {
            LOG.info("------3--------");
        }
    
    }
    /*
    output:
    2014-03-31 16:04:15,984 0    [main] INFO  - ------1--------
    2014-03-31 16:04:15,986 2    [main] INFO  - ------3--------
    2014-03-31 16:04:15,987 3    [main] INFO  - ------2--------
    */

    换成按字母排序

    package com.netease.test.junit;
    
    import org.apache.log4j.Logger;
    import org.junit.FixMethodOrder;
    import org.junit.Test;
    import org.junit.runners.MethodSorters;
    
    /**
     * User: hzwangxx
     * Date: 14-3-31
     * Time: 15:35
     */
    @FixMethodOrder(MethodSorters.NAME_ASCENDING)
    public class TestOrder {
        private static final Logger LOG = Logger.getLogger(TestOrder.class);
        @Test
        public void testFirst() throws Exception {
            LOG.info("------1--------");
        }
    
        @Test
        public void testSecond() throws Exception {
            LOG.info("------2--------");
    
        }
    
        @Test
        public void testThird() throws Exception {
            LOG.info("------3--------");
        }
    
    }
    /*
    2014-03-31 16:10:25,360 0    [main] INFO  - ------1--------
    2014-03-31 16:10:25,361 1    [main] INFO  - ------2--------
    2014-03-31 16:10:25,362 2    [main] INFO  - ------3--------
    */
  • 相关阅读:
    eclipse config 2 tab -> space
    APUE读书笔记-第13章-守护进程
    【转】Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
    【转】Android学习基础自定义Checkbox组件
    【转】declare-styleable的使用(自定义控件) 以及declare-styleable中format详解
    【转】android 自定义控件 使用declare-styleable进行配置属性(源码角度)
    【转】Android SwitchButton(滑动开关)
    【转】Android 如何在Eclipse中查看Android API源码 及 support包源码
    【转】如何在eclipse里关联查看android源码
    【转】setTag()/getTag()
  • 原文地址:https://www.cnblogs.com/drizzlewithwind/p/5774581.html
Copyright © 2020-2023  润新知