我需要导入什么才能在单元测试中使用 launchActivity<>()?
What do I need to import to use launchActivity<>() in UnitTests?
所以我正在尝试按照此处的 google 说明测试我的 activity:https://developer.android.com/guide/components/activities/testing
但是代码launchActivity<MyActivity>()
不起作用。我是否需要将 launchActivity 定义为规则,或者是否有我需要在 gradle 中导入的库?
这些是我已有的导入
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
Do I need to define launchActivity as a rule or is there a library I
need to import in gradle?
是的。您需要在测试开始时设置一个规则 class 像这样;
@RunWith(AndroidJUnit4.class)
public class YourActivityTests extends AndroidJUnitRunner {
@Rule
public ActivityTestRule<YourActivity> mYourActivityActivityTestRule =
new ActivityTestRule<YourActivity>(YourActivity.class);
所需的库导入捆绑在导入 androidx.test 包中。
这是针对 Java 的,但是,Kotlin 中应该有等效的方法。希望这有帮助。
编辑:您应该为生产应用程序使用最新稳定版本(版本控制中只有数字的版本)。仅当您确实需要这些版本的库时才使用任何带 -alpha 或 -rc 后缀的版本。
您需要将以下依赖项导入您的 gradle。
androidTestImplementation 'androidx.test:core-ktx:1.1.0'
此外,还要在 gradle 文件中添加此内容,以避免在测试代码中添加 launchActivity
方法后 。
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
在 Kotlin 中,出于某种原因似乎需要这样:
val activityScenario = launch(MainActivity::class.java)
这个的导入语句是:
import androidx.test.core.app.ActivityScenario.launch
或者这可能不是一回事?不知道,但它有效。
所以我正在尝试按照此处的 google 说明测试我的 activity:https://developer.android.com/guide/components/activities/testing
但是代码launchActivity<MyActivity>()
不起作用。我是否需要将 launchActivity 定义为规则,或者是否有我需要在 gradle 中导入的库?
这些是我已有的导入
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
Do I need to define launchActivity as a rule or is there a library I need to import in gradle?
是的。您需要在测试开始时设置一个规则 class 像这样;
@RunWith(AndroidJUnit4.class)
public class YourActivityTests extends AndroidJUnitRunner {
@Rule
public ActivityTestRule<YourActivity> mYourActivityActivityTestRule =
new ActivityTestRule<YourActivity>(YourActivity.class);
所需的库导入捆绑在导入 androidx.test 包中。
这是针对 Java 的,但是,Kotlin 中应该有等效的方法。希望这有帮助。
编辑:您应该为生产应用程序使用最新稳定版本(版本控制中只有数字的版本)。仅当您确实需要这些版本的库时才使用任何带 -alpha 或 -rc 后缀的版本。
您需要将以下依赖项导入您的 gradle。
androidTestImplementation 'androidx.test:core-ktx:1.1.0'
此外,还要在 gradle 文件中添加此内容,以避免在测试代码中添加 launchActivity
方法后
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
在 Kotlin 中,出于某种原因似乎需要这样:
val activityScenario = launch(MainActivity::class.java)
这个的导入语句是:
import androidx.test.core.app.ActivityScenario.launch
或者这可能不是一回事?不知道,但它有效。