在我的视图模型中,我有以下列表
private val screenComponents = mutableListOf(
ScreenComponent1(),
ScreenComponent2()
)
fun getScreenComponents() = screenComponents
fun getScreenComponentsSize() = getScreenComponents().size
有时会在screenComponents
列表中插入更多数据。
我正在尝试为此编写单元测试以确保大小正确,我知道我应该模拟getScreenComponents()
函数,但是当我尝试测试getScreenComponentsSize()
时我总是得到零
@RunWith(MockitoJUnitRunner::class)
class MyViewModelTest {
private val viewModel: MyViewModel = Mockito.mock(MyViewModel::class.java)
@Test
fun screenComponentsTest() {
when(viewModel.getScreenComponents()).thenReturn(
mutableListOf(
ScreenComponent1(),
ScreenComponent2()
)
)
Truth.assertThat(viewModel.getScreenComponentsSize()).isEqualTo(2) //Expected :2, Actual :0
}
}
我不确定我缺少什么,因为getScreenComponentsSize()
现在正在使用一个被模拟的函数,我将理解结果应该是我所模拟的结果。或者,我将如何成功进行测试?