📜  android 单元测试 - Java (1)

📅  最后修改于: 2023-12-03 15:13:21.548000             🧑  作者: Mango

Android 单元测试 - Java

在 Android 开发中,为了保证代码的质量和稳定性,我们需要进行单元测试。本文将为大家介绍如何使用 Java 进行 Android 单元测试。

为什么进行单元测试
  1. 提高代码质量:单元测试能够及时发现代码中的错误,提高上线代码质量。
  2. 保证代码稳定性:单元测试能够防止代码在变更后出现错误。
  3. 降低维护成本:单元测试可以减少调试时间和人力成本。
如何进行单元测试
依赖

在建立单元测试之前,需要在 Gradle 中添加以下依赖:

dependencies {
    testImplementation 'junit:junit:4.13.2'
    testImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
编写单元测试类

在 Android 项目中,可以在 src/test/Java 目录下创建一个测试类。示例代码如下:

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import static junit.framework.Assert.assertEquals;

@RunWith(RobolectricTestRunner.class)
public class CalculatorTest {
    private Calculator mCalculator;

    @Before
    public void setUp() {
        mCalculator = new Calculator();
    }

    @Test
    public void add() {
        double result = mCalculator.add(1d, 2d);
        assertEquals(3d, result);
    }

    @Test
    public void subtract() {
        double result = mCalculator.subtract(1d, 2d);
        assertEquals(-1d, result);
    }

    @Test
    public void multiply() {
        double result = mCalculator.multiply(2d, 5d);
        assertEquals(10d, result);
    }

    @Test
    public void divide() {
        double result = mCalculator.divide(12d, 3d);
        assertEquals(4d, result);
    }
}

在上面的代码中,我们使用 JUnit 框架进行测试。@RunWith(RobolectricTestRunner.class) 表示使用了 Robolectric 框架,@Test 表示这是一个测试方法。在 setUp 方法中,我们实例化了测试的 Calculator 类。

在每个测试方法中,我们使用 assertEquals 断言方法进行测试。如果实际值和期望值不相等,则会抛出 java.lang.AssertionError 异常。

运行单元测试

在 Android Studio 中,右键点击测试类,选择“Run 'CalculatorTest' with Coverage”即可运行单元测试。如下图所示:

单元测试

运行结果会在控制台中输出,例如:

Test running started
Finished running tests

通过输出的日志可以看出测试是否通过。

总结

Android 单元测试能够提高代码质量和稳定性,降低维护成本。我们可以使用 Java 和 JUnit 等框架进行单元测试,从而保证代码的正确性。