【发布时间】:2021-06-29 15:35:26
【问题描述】:
我是 Mockito Android 测试框架的新手。我在活动中编写了一种方法,它显示了 AlertDialog,我正在为该方法编写测试用例。
以下是显示警报对话框的活动的功能:
fun showDialogBox(
shortMessage: String?,
longMessage: String?,
progress: Int,
status: String?
) {
runOnUiThread {
if (cdfwExtractionStatusAlertDialog == null) {
val mDialogView = LayoutInflater.from(this).inflate(
R.layout.cdfw_extraction_status_layout,
null
)
val mBuilder = AlertDialog.Builder(this)
.setView(mDialogView)
.setCancelable(false)
shortMessageTv = mDialogView.findViewById(R.id.short_message_tv)
longMessageTv = mDialogView.findViewById(R.id.long_message_tv)
closeButton = mDialogView.findViewById(R.id.close_button)
cdfwProcessBar = mDialogView.findViewById(R.id.progress_bar)
cdfwProcessBar.progress = progress
shortMessageTv.text = shortMessage
longMessageTv.text = longMessage
closeButton.setOnClickListener {
cdfwExtractionStatusAlertDialog?.dismiss()
}
checkStatus(status)
cdfwExtractionStatusAlertDialog = mBuilder.show()
} else {
shortMessageTv.text = longMessage
longMessageTv.text = longMessage
cdfwProcessBar.progress = progress
checkStatus(status)
}
}
}
这是我对同一功能的模拟测试用例:
@Test
public void testCDFWExtractionStatusNoZipFound(){
MainActivity activity = Mockito.mock(MainActivity.class);
activity.showDialogBox("","CDFW Required.",0,"FAILED_NO_ZIP_FOUND");
Mockito.matches("CDFW Extraction Status");
Mockito.matches("CDFW Required.");
Mockito.matches("Close");
}
@Test
public void testCDFWExtractionStatusInProgress(){
MainActivity activity = Mockito.mock(MainActivity.class);
activity.showDialogBox("","CDFW extraction ongoing",0,"IN_PROGRESS");
Mockito.matches("CDFW Extraction Status");
Mockito.matches("CDFW extraction ongoing");
}
它显示测试成功通过,但我不确定这是否是为同一函数编写测试用例的正确方法,如果这是错误的方法,那么我该如何为同一函数编写测试用例。
【问题讨论】:
标签: android unit-testing kotlin mockito