编写片段的单元测试

时间:2018-08-06 15:22:25

标签: android unit-testing kotlin

我有以下数据类,其中包含资源ID和视图的onClickListener:

data class Item(val name: Int, val onClick: View.OnClickListener)

稍后,我使用(children扩展了ViewGroup以获得子视图列表)填充Layouts子视图:

fun loadItems(list: List<Item>, viewGroup: ViewGroup){
    viewGroup.children.zip(list) { view, item ->
        (view as TextView).text = resources.getString(item.name)
        view.setOnClickListener(item.onClick)
    }
}

我想测试ViewGroup的子级

  • 具有我在项目中提供的资源的字符串
  • 有我在该项中提供的收听者

此代码是片段的一部分。最简单的方法是什么?我希望这是一个本地测试。

1 个答案:

答案 0 :(得分:2)

对于涉及一些Android组件(如“活动”或“片段”)的本地测试,最好的选择是在使用JVM执行测试时使用Robolectric。

但是,话虽如此,我认为您正在测试列表及其项目的内容。在这种情况下,最好使用Espresso,尤其是对其onData()调用。值得注意的是,对于此类与UI相关的测试,您将需要设备或仿真器。