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 分钟前
用 AI 完整实现 Github 客户端:基于 KMP + SwiftUI + Compose
android·人工智能·ios
汪海游龙27 分钟前
本地源码还是 Maven 版本?Gradle composite build 双轨依赖的正确接法
android·ci/cd·kotlin
k3x1n41 分钟前
三星安卓系统BUG排查记录:云闪付、铁路12306、个人所得税、中国移动等App,长期闪退的根本原因分析
android·逆向
网安蟹佬霸2 小时前
CTF Web方向解题全攻略:从信息收集到getshell(附实战payload与脚本)
android·前端·网络·安全·web安全·网络安全·网安
又见情义3 小时前
Android 13 Settings 设置界面选项裁剪(RK3568平台)
android
人才瘾大4 小时前
Android录屏内部音频录制完全指南:原理、限制与方案选型
android·音视频
网安蟹佬霸4 小时前
Webshell免杀与检测实战:从一句话木马到加密流量
android·安全·web安全·网络安全·黑客·网安·渗透测试·
阿巴斯甜7 小时前
Android SharedMemory 详细使用
android
sun0077007 小时前
android的dns的常见错误resolv
android
恋猫de小郭8 小时前
Flutter A2UI 的正确用法,怎么把 AI 和动态 UI 结合有效生产
android·前端·flutter