我试图验证我的数组正在设置值,但是我不知道如何与Mockito / Mockito Kotlin进行比较
class Presenter(private var repo: repo,
private var list: List<Data> = arrayListOf()) {
fun setData(){
list = repo.getData()
}
}
我不知道如何验证这种情况的发生,并且不确定在谷歌搜索后采取什么合适的方法
@Test
fun `setData`() {
val myList: List<Data> = mock()
val repo: Repo = mock()
val presenter = Presenter(repo, myList)
val returnedList: List<Data> = listOf(Data())
whenever(repo.getData()).thenReturn(returnedList)
presenter.setData()
verify ?????
}
我试图让myList成为一个真实的对象,并成为一个模拟对象,但是两者都不起作用?
像myList.count()这样的东西在用real或mocked()调用后仅返回0,而不是预期的1
要么验证大小为1,要么等于list即可。
答案 0 :(得分:0)
因此,对于该问题进行了初步讨论,如果我使用真实列表进行测试,并且未将列表设置为repo.getData
的结果,而是将所有内容添加到列表中,则按预期工作
我仍然热衷于通过分配值而不是全部添加来做到这一点。
class Presenter(private var repo: repo,
private var list: ArrayList<Data> = arrayListOf()) {
fun setData() {
list.clear()
list.addAll(repo.getData())
}
}
@Test
fun `setData`() {
val myList: ArrayList<Data> = arrayListOf()
val repo: Repo = mock()
val presenter = Presenter(repo, myList)
val returnedList: List<Data> = listOf(Data())
whenever(repo.getData()).thenReturn(returnedList)
presenter.setData()
assertEquals(1, myList.count)
}