测试中未调用应用程序onCreate

时间:2018-09-26 04:44:44

标签: android

我试图通过命令“ gradle connectedDebugAndroidTests”使用AndroidJUnitRunner运行我的android测试,我注意到当我运行测试时,未创建应用程序的Application对象,也未调用“ onCreate”。我猜这是预期的。但是,我的测试依赖于在运行测试之前调用此代码。

有没有办法做到这一点?

我尝试在应用的“ androidTest”部分中创建一个定义“ application”属性的新清单,但这似乎也不起作用:(

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

<application
    android:name=".MyTestApplication"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round" />

</manifest>

1 个答案:

答案 0 :(得分:1)

您应该创建一个以@Before注释的方法,并在该方法中执行以下代码以启动您的应用程序类:

@Before
public void prepareApplication() {
    MyTestApplication app = (MyTestApplication) InstrumentationRegistry.getInstrumentation().getTargetContext().getApplicationContext();
    app.onCreate();
}