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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章