【Android-UnitTest】Android单元测试问题汇总

1. 基本使用

位置:

资源管理器Android视图:选择module(如:app)----java----包名(如:com.example.abc)----ExampleUnitTest.java
资源管理器Project视图:项目名称----选择module----src----test----包名----ExampleUnitTest.java

注解:

在该类中创建公共方法,加上@Test注解即可

public class ExampleUnitTest {
    @Test
    public void addition_isCorrect() {
        assertEquals(4, 2 + 2);
    }
}

 

2. 外部类库引用出错

报错:

java.lang.RuntimeException: Method d in android.util.Log not mocked. See http://g.co/androidstudio/not-mocked for details.
    at android.util.Log.d(Log.java)
    at ble.ztj.pro.controlble.ExampleUnitTest.addition_isCorrect(ExampleUnitTest.java:23)

 解决方案:

在相应Module的build.gradle文件android{}闭包中加入单元测试属性:

testOptions {
    unitTests.returnDefaultValues = true
}

原因:

由于单元测试主要测试代码而非依赖,用于运行单元测试的android.jar不包含任何实际的代码

参考: 

https://blog.csdn.net/qq_38910403/article/details/102639487 | 关于Android Studio单元测试中“Method d in android.util.Log not mocked.”问题的解决。

 

你可能感兴趣的:(Android,UnitTest)