是否可以在Android测试项目中定义Activity并对其进行测试?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我认为在测试项目内部创建一个虚拟活动并创建继承的测试会很容易ActivityInstrumentationTestCase2<TestActivity>,但出于某种原因,我总是会得到java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.xxx/.Testctivity }异常。

提问于
用户回答回答于

为了做到这一点,你需要:

  1. 在测试项目的AndroidManifest.xml中定义您的虚拟活动。
  2. 在测试项目的AndroidManifest.xml中将测试targetPackage指向自己。(被测试的Activity类必须在instrumentation targetPackage下)。

测试项目的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="1"
    android:versionName="1.0" >

<uses-sdk android:minSdkVersion="10" />

<!-- targetPackage point to test project itself -->
<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.example.test" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <uses-library android:name="android.test.runner" />
    <activity
        android:name=".DummyActivity"
        android:label="@string/app_name" >
    </activity>
</application>

用户回答回答于

测试项目和活动可以共存,将目标软件包名称作为测试项目的软件包名称。

扫码关注云+社区