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

  • 相关阅读:
    后端注册接口完善
    编写注册接口
    Git 多人开发及常见问题
    Git 常用命令
    GIT 的安装及配置SSH
    ORM查询方法(整理)
    HTTP的系列理解与整理
    Unity C# 反射
    C# 中的委托和事件
    Unity C# 运用 GetSaveFileName() 导出Excel文件
  • 原文地址:https://www.cnblogs.com/zhangmiao14/p/10430955.html
Copyright © 2011-2022 走看看