Android 仅为这样的一个操作创建LiveDataObserver是必需的。?

Android 仅为这样的一个操作创建LiveDataObserver是必需的。?,android,mvvm,android-livedata,Android,Mvvm,Android Livedata,我有下一段代码,我想为下一个按钮添加单元测试,一位朋友说“太多了,无法创建一个只测试每个函数的实时数据观察者”。问题是,我至少有10个按钮,这些按钮具有不同的操作,如意图、计算、发送数据等。每个按钮执行不同的操作,一些按钮表示操作,另一些按钮表示事件 图像只是其中之一。但问题是,如何使其可测试,我理解为了进行测试,我需要在viewModel上创建一个方法,并创建一个LiveData,只返回视图,并在片段中注册观察者,只为了达到目的,对我来说,这听起来像是“四处走动”。如果视图不需要“观察”任何东

我有下一段代码,我想为下一个按钮添加单元测试,一位朋友说“太多了,无法创建一个只测试每个函数的实时数据观察者”。问题是,我至少有10个按钮,这些按钮具有不同的操作,如意图、计算、发送数据等。每个按钮执行不同的操作,一些按钮表示操作,另一些按钮表示事件

图像只是其中之一。但问题是,如何使其可测试,我理解为了进行测试,我需要在viewModel上创建一个方法,并创建一个LiveData,只返回视图,并在片段中注册观察者,只为了达到目的,对我来说,这听起来像是“四处走动”。如果视图不需要“观察”任何东西,只需要通知视图做某事,为什么我应该让一个观察者只是为了一个目的呢

其他10个按钮也类似。我真的需要创建一个liveData来测试每个按钮吗?有一个观察者,然后立即回到视图中去做那些事情,听起来有些夸张。有更好的方法吗

   buttonContainer.setOnClickListener {
        val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
        val uri: Uri = Uri.fromParts(SCHEME, activity?.packageName, null)
        intent.data = uri
        startActivity(intent)
    }

您可以拥有一个
LiveData
,而不是多个
LiveData

消耗品只是一种模式,用于确保事件只消耗一次()

然后将
事件定义为:

sealed class Event {
    class OpenDetail(id: Long): Event
    object OnSuccess(): Event
    ....
}

然后在测试中,您只需验证调用方法x是否会导致相应的
事件
被发送出去。

粘贴代码总是比添加代码图像更好。是否要编写单元测试或UI测试?我想在viewModel中编写单元测试
sealed class Event {
    class OpenDetail(id: Long): Event
    object OnSuccess(): Event
    ....
}