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