验证是否设置了阵列

时间:2018-11-02 18:36:46

标签: mockito

我试图验证我的数组正在设置值,但是我不知道如何与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即可。

1 个答案:

答案 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)
}