- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写一个 android 测试用例,它需要对被测试的 Activity 执行一个单独的 Activity(不是为了测试,而是为了获得对 contentresolver 的访问权限,以便我可以更改一些电话设置)。
是否可以从测试用例或以其他方式开始 Activity 。
我知道用于测试 Activity 的 AndroidTestCase 类,我在测试中使用它,但是我需要使用 ContentResolver 来更改电话设置,然后测试被测 Activity 的 react ,因此我需要另一个应用程序组件来更改这些设置。
注意:我释放了多个 Activity 测试背后的复杂性(需要 ActivityManager),但我只想使用它的方法来更改设置,这样我什至可以在 onCreate 方法中拥有逻辑。
最佳答案
Android 为测试 Activity 提供了一个特殊的检测框架。您必须使用这个框架,因为 Activity 有一个复杂的生命周期,在这个提供的框架之外是不可调用的。在 Android 文档的开发部分的测试链接下查找 Activity Testing .如果这不能回答您的问题,您可以改写一下。
编辑
您真的应该扩展 ActivityUnitTestCase 来测试 Activity,而不是 AndroidTestCase。您可以获得更多特定于您需要测试的功能。如果您扩展 ActivityUnitTestCase,则会有一个名为 launchActivity 的函数。它将启动您需要的 Activity 并为您提供该 Activity 的实例,以便您可以调用其上的方法,例如 set、get 和 finish。这应该可以完成您一次处理单个和多个 Activity 所需的任何操作。
示例代码:
@MediumTest
public class Test extends ActivityUniTestCase<HelloActivity> {
public Test(Class<HelloActivity> activityClass) {
super(activityClass);
}
@MediumTest
public void testLifeCycleCreate() {
HelloActivity hActivity = startActivity(new Intent(Intent.ACTION_MAIN), null, null);
getInstrumentation().callActivityOnStart(hActivity);
getInstrumentation().callActivityOnResume(hActivity);
GoodByeActivity gActivity = launchActivity("package.goodbye", GoodByeActivity.class, null);
gActivity.finish();
}
}
关于android - 从 AndroidTestCase 调用 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5434933/
https://gist.github.com/blundell/ff2ac1d5ff0a41519c36 http://developer.android.com/reference/android
我已经实现了一个 Instrumentation 和一个 AndroidTestCase。 对于我的测试,我需要连接到外部 WIFI 设备。我希望测试人员能够指定一个 SSID 供测试使用。 给命令行
我打算开始编写一些 android 测试用例,我想知道是否有一种方法可以在模拟器中以编程方式打开和关闭连接。 // High level puesdo code Test: is Message Pu
希望在方法 assertActivityRequiresPermission 和 assertReadingContentUriRequiresPermission 方面得到一些帮助。它的行为方式与我
我找到了 MeediaMuxer 的演示,它是一个 AndroidTestCase 文件。这是 link . 我从未使用过 Android Test。我做了一些研究,但其中大部分都有些复杂......
我正在使用 ActivityInstrumentationTestCase2 在我的 GUI 上进行自动黑盒测试。有没有办法点击一个对话框,或者在单元测试中获取属于该对话框的 View ? 我能想出的
我正在编写一个 android 测试用例,它需要对被测试的 Activity 执行一个单独的 Activity(不是为了测试,而是为了获得对 contentresolver 的访问权限,以便我可以更改
我一直在看这个答案:https://stackoverflow.com/a/2055455/281460它很好地解释了可用于 Android 单元/集成测试的不同测试类。不过,它没有解释的一件事是 I
我正在编写一些测试来测试我的 sqllite 数据库代码。这里有人可以解释一下,使用我从 AndroidTestCase.getContext() 获得的上下文来编写这些测试是否会有所不同?或使用 I
我正在使用 AndroidTestCase 进行一些单元测试,并且想知道是否可以使用我为 junit4 读过的忽略注释?仅仅使用注解就会报错,也许有什么特别需要注意的地方? 提前谢谢,马库斯 最佳答案
在为 Android 库项目编写测试用例时,我遇到了一些 View 尺寸问题。具体来说,我正在使用 AndroidTestCase 来测试自定义 View 类,该类(除其他外)可以生成其内容的位图。创
在我的项目中,当Service启动时,我发送一个广播: Intent intent = new Intent("my.service.action"); intent.setPackage("com.
我正在尝试在 Android 测试中测试写入 Parcel,但它不起作用。 s==空!怎么了? public class scraptest extends AndroidTestCase {
我正在为我的 Android 项目编写一个非常简单的单元测试用例,测试用例简单地执行一个在后台进行网络操作的 AsyncTask。我正在为我的测试用例扩展 AndroidTestCase 类: pub
我正在尝试使用 AndroidTestCase 进行测试。我试图在我的应用程序中只测试一个特定的类,但是这个类不扩展 Activity、Service 或其他任何东西。除了需要上下文之外,它基本上是一
我有一个测试用例,并在那里使用Environment.getExternalStorageDirectory() 调用,它返回 null。 我在应用程序的 list 中拥有“写入外部存储”权限(并且
我正在尝试执行一个扩展我制作的 AndroidTestCase 的测试类,但显然我一直收到以下错误: No apk changes detected. Skipping file upload, fo
你好,我正在为我的 sqlite 数据库做测试部分。我以前使用过 JUnit,但我了解到我必须扩展 AndroidTestCase 才能获得模拟上下文。但是,当我 try catch 异常时(如在 J
我正在尝试接受 Android Studio 的新单元测试功能。我已按照 http://tools.android.com/tech-docs/unit-testing-support 上的说明进行操
我有自己的 SQLiteOpenHelper 如下: public class MyOpenHelper extends SQLiteOpenHelper { public static fina
我是一名优秀的程序员,十分优秀!