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 中数据处理逻辑可能出现的问题。

相关推荐
雨白8 小时前
Android 快捷方式实战指南:静态、动态与固定快捷方式详解
android
hqk8 小时前
鸿蒙项目实战:手把手带你实现 WanAndroid 布局与交互
android·前端·harmonyos
LING8 小时前
RN容器启动优化实践
android·react native
恋猫de小郭11 小时前
Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力
android·前端·flutter
金銀銅鐵15 小时前
浅解 JUnit 4 第十二篇:如何生成 @Before 注解的替代品?(上)
junit·单元测试
Kapaseker16 小时前
一杯美式搞懂 Any、Unit、Nothing
android·kotlin
黄林晴16 小时前
你的 Android App 还没接 AI?Gemini API 接入全攻略
android
恋猫de小郭1 天前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
冬奇Lab1 天前
PowerManagerService(上):电源状态与WakeLock管理
android·源码阅读
BoomHe1 天前
Now in Android 架构模式全面分析
android·android jetpack