ViewModel(8)单元测试

对 ViewModel 进行单元测试可以确保其数据处理逻辑的正确性和稳定性。以下是一个简单的示例,展示如何对 ViewModel 进行单元测试:

假设我们有一个 CounterViewModel,用于管理计数器:

复制代码
import androidx.lifecycle.ViewModel;

public class CounterViewModel extends ViewModel {

    private int counter;

    public void increment() {
        counter++;
    }

    public int getCounter() {
        return counter;
    }
}

对应的单元测试:

复制代码
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;

class CounterViewModelTest {

    private CounterViewModel viewModel;

    @BeforeEach
    void setUp() {
        viewModel = new CounterViewModel();
    }

    @Test
    void testIncrementCounter() {
        viewModel.increment();
        assertEquals(1, viewModel.getCounter());

        viewModel.increment();
        assertEquals(2, viewModel.getCounter());
    }
}

在上述示例中:

  • @BeforeEach 注解的 setUp 方法在每个测试方法执行前初始化 ViewModel 对象。
  • testIncrementCounter 方法测试了计数器递增的功能,通过调用 increment 方法后,验证计数器的值是否符合预期。

这样的单元测试可以帮助我们在代码更改时快速发现 ViewModel 中数据处理逻辑可能出现的问题。

相关推荐
龙之叶12 分钟前
【Android Monkey源码解析五】- 异常处理
android·数据库
明道源码17 分钟前
Android Studio AVD 模拟器的使用与配置
android·android studio
学海无涯书山有路1 小时前
Android FragmentContainerView 新手详解(Java 版)
android·java·开发语言
上海控安1 小时前
Android生态中的SDK安全问题解析
android·安全
aidou13141 小时前
Android中自定义日期选择器样式DatePickerDialog
android·dialog·日期选择器·时间选择器·datepicker·自定义样式·timepicker
建群新人小猿3 小时前
陀螺匠企业助手—个人简历
android·大数据·开发语言·前端·数据库
Mr Lee_5 小时前
attribute android:enableOnBackInvokedCallback not found
android
Jomurphys5 小时前
Compose - 使用 Reorderable
android
帅得不敢出门5 小时前
Android Framework在mk中新增类似PRODUCT_MODEL的变量并传递给buildinfo.sh及prop属性中
android·linux·前端
似霰5 小时前
AIDL Hal 开发笔记7----AIDL HAL 的升级
android·framework·hal