美文网首页
1.单元测试

1.单元测试

作者: 奈何人别离 | 来源:发表于2021-03-15 16:15 被阅读0次

    android中的单元测试基于JUnit,可分为本地测试和instrumented测试,在项目中对应

    • module-name/src/test/java/.
        该目录下的代码运行在本地JVM上,其优点是速度快,不需要设备或模拟器的支持,但是无法直接运行含有android系统API引用的测试代码。
    • module-name/src/androidTest/java/.
        该目录下的测试代码需要运行在android设备或模拟器下面,因此可以使用android系统的API,速度较慢。

    JUnit4

    JUnit4是一套基于注解的单元测试框架。在android studio中,编写在test目录下的测试类都是基于该框架实现,该目录下的测试代码运行在本地的JVM上,不需要设备(真机或模拟器)的支持。
      JUnit4中常用的几个注解:

    • @BeforeClass 测试类里所有用例运行之前,运行一次这个方法。方法必须是public static void
    • @AfterClass 与BeforeClass对应
    • @Before 在每个用测试例运行之前都运行一次。
    • @After 与Before对应
    • @Test 指定该方法为测试方法,方法必须是public void
    • @RunWith 测试类名之前,用来确定这个类的测试运行器
    public class DateUtil {
        /**
         * 英文全称  如:2017-11-01 22:11:00
         */
        public static String FORMAT_YMDHMS = "yyyy-MM-dd HH:mm:ss";
    
        /**
         * 掉此方法输入所要转换的时间输入例如("2017-11-01 22:11:00")返回时间戳
         *
         * @param time
         * @return 时间戳
         */
        public static long dateToStamp(String time) throws ParseException {
            SimpleDateFormat sdr = new SimpleDateFormat(FORMAT_YMDHMS, Locale.CHINA);
            Date date = sdr.parse(time);
            return date.getTime();
        }
    
        /**
         * 将时间戳转换为时间
         */
        public static String stampToDate(long lt){
            String res;
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FORMAT_YMDHMS, Locale.CHINA);
            Date date = new Date(lt);
            res = simpleDateFormat.format(date);
            return res;
        }
    }
    

    比如这是一个时间格式转化的工具类,下面对其中的方法做测试,首先把鼠标放在类名上,按alt+enter,弹出的提示框选择Create Test


    image.png

    在生成的方法上加上注解

    @Before
        public void setUp(){
            System.out.println("开始测试");
        }
    
        @After
        public void tearDown(){
            System.out.println("结束测试");
        }
    

    然后添加测试方法,必须public修饰,在方法名上加上@Test注解

        @Test
        public void testDateToStamp() throws ParseException {
            assertEquals(null, DateUtil.dateToStamp(time));
        }
    

    assertEquals(null, DateUtil.dateToStamp(time));方法传入两个参数,第一个为预期结果,第二个是要测试的方法
    然后就可以运行测试了;

    一次性测试多个情况:

    @RunWith(Parameterized.class)
    public class DateUtilTest
    
    @Parameterized.Parameters
    public static Collection primeNumbers() {
            return Arrays.asList(new String[]{
                    "2017-11-01 22:11:00",
                    "2017-11-01",
                    "2017年11月01日 22时11分00秒"
            });
        }
    

    相关文章

      网友评论

          本文标题:1.单元测试

          本文链接:https://www.haomeiwen.com/subject/fxukcltx.html