我正在使用robolectric测试警报消息,但是获取的alertDialog返回一条空白消息,这是测试片段:
AlertDialog alertDialog = ShadowAlertDialog.getLatestAlertDialog();
ShadowAlertDialog sAlert = shadowOf(alertDialog);
assert(sAlert.getMessage().toString().equalsIgnoreCase(myFragment.getString(R.string.a_rather_boring_alert_message)));
以下是显示片段的代码:
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle(heading);
alert.setIcon(R.drawable.ic_dialog_info);
final TextView tx1 = new TextView(context);
tx1.setText(msg);
int paddingPixelSize = context.getResources().getDimensionPixelSize(R.dimen.padding_large);
tx1.setPadding(paddingPixelSize, paddingPixelSize, paddingPixelSize, paddingPixelSize);
tx1.setMovementMethod(LinkMovementMethod.getInstance());
tx1.setAutoLinkMask(Activity.RESULT_OK);
alert.setView(tx1);
alert.setCancelable(false);
我正在使用的版本:
testCompile 'org.robolectric:robolectric:3.1.2'
答案 0 :(得分:0)
我有同样的问题,就像Eugen Martynov指出问题与AlertDialog有关。
getLatestAlertDialog
返回我使用android.app.AlertDialog
的{{1}},因此android.support.v7.app.AlertDialog
为空
此问题已在此处报道。 https://github.com/robolectric/robolectric/issues/2232
但仍未解决:(
唯一的选择是在所有地方使用ShadowAlertDialog.getLatestAlertDialog