我试图通过命令“ 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>
答案 0 :(得分:1)
您应该创建一个以@Before注释的方法,并在该方法中执行以下代码以启动您的应用程序类:
@Before
public void prepareApplication() {
MyTestApplication app = (MyTestApplication) InstrumentationRegistry.getInstrumentation().getTargetContext().getApplicationContext();
app.onCreate();
}