如何通过Robolectric检查progressDialog是否显示给用户

问题描述 投票:0回答:2

当filePath为null或包含非法文件路径时,我想测试我的活动的行为。

我的活动代码是

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(...);
    Intent intent = getIntent();

    filePath = intent.getParcelableExtra(SOMETHING);
    if (TextUtils.isEmpty(filePath)) {
        showErrorAndFinishPopup();
        return;
    }
    mediaMetadataRetriever = new MediaMetadataRetriever();
    try {
        mediaMetadataRetriever.setDataSource(filePath);
    } catch(IllegalArgumentException e) {
        showErrorAndFinishPopup();
        return;
    }
    progressDialog = new ProgressDialog(this);
    progressDialog.setMessage("something");
    progressDialog.show();
    ...
}

我可以用'filePath = null'来表达自己的意图并开始我的活动。但是,我不确定如何检查进度对话框。

android unit-testing robolectric illegalargumentexception
2个回答
1
投票

你可以像这样调用isShowing来检查对话框是否显示:

if (progressDialog.isShowing())
            {
                // progressDialog is currently visible
            }
            else
            {
                // progressDialog is currently invisible
            }

0
投票

我可以使用阴影

ShadowProgressDialog.getShownDialogs()
© www.soinside.com 2019 - 2024. All rights reserved.