【发布时间】:2020-10-26 04:37:04
【问题描述】:
我有下一段代码,我想为下一个按钮添加单元测试,一位朋友说“创建一个实时数据观察者只是为了测试每个功能太多了”。问题是我至少有 10 个按钮,它们具有不同的操作,如意图、计算、发送数据等。每个按钮做不同的事情,一些代表动作,另一些代表事件。
图片只是其中之一。但问题是,如何使其可测试,我了解测试我需要在 viewModel 上创建一个方法,并制作一个 LiveData 只返回到视图并在片段中注册观察者只是为了做出意图,我听起来像“四处走走”。如果视图不需要“观察”什么,只通知视图做某事,为什么我应该只为一个 Intent 设置一个观察者。
其他 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)
}
// Each of those make one action, but to have an observer for each, don't sounds good,
// why whould I need an observer only for one action , but if don't, I couldn't test it
liveDataAction1.value = true
liveDataAction2.value = true
liveDataAction3.value = true
liveDataAction4.value = true
liveDataAction5.value = true
【问题讨论】:
-
粘贴代码总是比添加代码图像更好。
-
你想写单元测试还是 UI 测试?
-
我想在viewModel中写单元测试
标签: android mvvm android-livedata