Dan*_*son 15 android android-testing androidx
所以我试图按照谷歌的说明来测试我的活动: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'
Run Code Online (Sandbox Code Playgroud)
Nig*_*ury 16
您需要将以下依赖项导入到您的 gradle 中。
androidTestImplementation 'androidx.test:core-ktx:1.1.0'
此外,还要将此添加到 gradle 文件中,以避免在测试代码中添加方法后出现编译时错误launchActivity。
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
Run Code Online (Sandbox Code Playgroud)
在 Kotlin 中似乎出于某种原因需要这样:
val activityScenario = launch(MainActivity::class.java)
Run Code Online (Sandbox Code Playgroud)
对此的导入语句是:
import androidx.test.core.app.ActivityScenario.launch
Run Code Online (Sandbox Code Playgroud)
或者也许这不是一回事?不知道,但它有效。
MD *_*raf -2
我是否需要将 launchActivity 定义为规则,或者是否需要在 gradle 中导入一个库?
是的。您需要在测试类开始时设置一条规则,如下所示;
@RunWith(AndroidJUnit4.class)
public class YourActivityTests extends AndroidJUnitRunner {
@Rule
public ActivityTestRule<YourActivity> mYourActivityActivityTestRule =
new ActivityTestRule<YourActivity>(YourActivity.class);
Run Code Online (Sandbox Code Playgroud)
所需的库导入捆绑在 import androidx.test 包中。
这是针对 Java 的,但是,Kotlin 中应该有等效的方法。希望这可以帮助。
编辑:您应该为生产应用程序使用最新的 稳定版本(版本控制中只有数字的版本)。仅当您确实需要这些版本的库时才使用任何 -alpha 或 -rc 后缀版本。
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |