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

相关推荐
Android小码家1 小时前
OWASP 移动应用安全之授权(MASTG-DEMO-0090)
android·安全·frida
Summer-Bright1 小时前
消费者 AI 变现竞争:从“一家独大“到“iOS vs Android“,谁在为 AI 买单?
android·人工智能·ios·ai·自然语言处理·agi
Xzaveir2 小时前
企业号码资产平台:逐号状态、事件日志与批次聚合
android·人工智能
恋猫de小郭3 小时前
Flutter 3D 渲染的全新选择和应用场景
android·前端·flutter
—Miss. Z—3 小时前
计算机二级MySQL——简单应用题(事件&视图)
android·mysql·adb
邪修king4 小时前
C++ 进阶终章:异常机制与智能指针全解 —— 从错误处理到 RAII 资源管理,打通现代 C++ 的核心命脉
android·数据结构·c++
三少爷的鞋4 小时前
LiveData 的缺陷:为什么我现在越来越少使用 LiveData?
android
雨白15 小时前
NDK 初探:基于 C++ 实现参数哈希与签名校验
android
程序员正茂16 小时前
Android studio中初步使用OpenCV库
android·opencv
紫_龙16 小时前
window 维护多版本Android studio
android·ide·android studio