gpt4 book ai didi

android - Android 的 ActivityUnitTestCase 中的测试对话框

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:39 24 4
gpt4 key购买 nike

我正在尝试在 android 中测试一个将显示 ProgressDialog 的 Activity,并且在应用程序中一切正常,但是当我尝试使用 ActivityUnitTestCase 并且测试导致 Activity 显示对话框时,它失败并出现此错误:

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
at android.view.ViewRoot.setView(ViewRoot.java:429)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:178)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.view.Window$LocalWindowManager.addView(Window.java:392)

我正在查看这个问题,当我们尝试从测试中创建它时,我的 Activity 的 onCreateDialog 方法似乎崩溃了,我认为这是另一个上下文,我明白了,但是我想知道你们中的任何一个成功尝试这种情况。

这是我的 onCreateDialog 的代码。

    public Dialog onCreateDialog(final int id)
{
Dialog dialog;
switch (id)
{
case PROGRESS_BAR:
loadingDialog = new ProgressDialog(this);
loadingDialog.setMessage("searching for product...");
loadingDialog.setIndeterminate(true);
dialog = loadingDialog;
break;
case INEXISTING_PRODUCT:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Product not found");
builder.setPositiveButton("OK", null);
dialog = builder.create();
break;
case UNAVAILABLE_SERVICE:
AlertDialog.Builder unavailableBuilder = new AlertDialog.Builder(this);
unavailableBuilder.setMessage("Service Unavailable");
unavailableBuilder.setPositiveButton("OK", null);
dialog = unavailableBuilder.create();
break;
default:
dialog = super.onCreateDialog(id);
}
return dialog;
}

有什么想法吗?

最佳答案

我相信我找到了一种方法。

问题是我需要从 ActivityInstrumentationTestCase2 进行扩展,并且还要这样做以避免 GUI 线程出现问题。

  final Button uButton = (Button) activity.findViewById(R.id.btnSearchProduct);
activity.runOnUiThread(new Runnable()
{
public void run()
{
uButton.performClick();
}
});

我唯一的问题是如何检查结果,因为我需要检查我登陆的是哪个 Activity,它是额外的吗?

关于android - Android 的 ActivityUnitTestCase 中的测试对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com