Да, есть лучший способ показать AlertDialogs вашему коду автоматизации, но вам придется сделать это в рабочем коде. Это будет стоить того, потому что это сделает вашу жизнь намного проще. Позволь мне объяснить.
Вы можете назначить свои AlertDialogs объекту WeakHashMap и очень легко получить их. Вот как -
//Definition for WeakHashMap Object
WeakHashMap< Integer, Dialog > managedDialogs = new WeakHashMap< Integer, Dialog >();
//Some alertdialog builder that needs to be exposed
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(YourActivity.this);
switch(id)
{
case DIALOG:
alertDialogBuilder.setTitle("some title")
.setMessage("some message")
.setPositiveButton("button text", Onclick activity)
.setNeutralButton("button text", Onclick activity)
.setNegativeButton("button text", Onclick activity)
.setCancelable(true);
AlertDialog dialog = alertDialogBuilder.create();
//Assigning the value of this dialog to the Managed WeakHashMap
managedDialogs.put(DIALOG, dialog);
return dialog;
}
Теперь в вашей тестовой среде, когда вы ожидаете появления диалогового окна, просто выполните -
AlertDialog dialog = (AlertDialog) activity.managedDialogs.get(YourActivity.DIALOG);