zoukankan      html  css  js  c++  java
  • Android单元测试之三:使用模拟框架模拟依赖

    Android单元测试之三:使用模拟框架模拟依赖

    基本描述

      如果是一些工具类方法的测试,如计算两数之和的方法,本地 JVM 虚拟机就能提供足够的运行环境,但如果要测试的单元依赖了 Android 框架,比如用到了 Android 中的 Context 类的一些方法,本地 JVM 将无法提供这样的环境,这时候模拟框架 Mockito 就派上用场了。

    使用

    引入框架

    testImplementation 'org.mockito:mockito-core:2.19.0'
    

    测试类

    package com.zm.androidUnitTest;
    
    import android.content.Context;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.mockito.Mock;
    import org.mockito.junit.MockitoJUnitRunner;
    
    import static org.hamcrest.core.Is.is;
    import static org.junit.Assert.assertThat;
    import static org.mockito.Mockito.when;
    
    /**
     * Created by zhangmiao on 2019/2/24.
     */
    
    @RunWith(MockitoJUnitRunner.class)
    public class MockUnitTest {
        private static final String FAKE_STRING = "AndroidUnitTest";
    
        @Mock
        Context mMockContext;
    
        @Test
        public void readStringFromContext_LocalizedString() {
            when(mMockContext.getString(R.string.app_name)).thenReturn(FAKE_STRING);
            assertThat(mMockContext.getString(R.string.app_name),is(FAKE_STRING));
    
            when(mMockContext.getPackageName()).thenReturn("com.jdqm.androidunittest");
            System.out.println(mMockContext.getPackageName());
        }
    }
    

    测试结果

    参考文章

    https://www.jianshu.com/p/aa51a3e007e2

  • 相关阅读:
    张五常:思考的方法
    David Foster Wallace on Life and Work
    SQL SERVER SQL Agent服务使用小结
    js大全
    中国载人航天工程七大系统
    vc 编译遇到问题
    学习Excel技巧
    使用Request.ServerVariables获取环境变量
    c# 字符常用函数
    SQL数据同步
  • 原文地址:https://www.cnblogs.com/zhangmiao14/p/10430955.html
Copyright © 2011-2022 走看看