ActivityTestRule在Android测试中已经被弃用。

12

这是我仪器化测试的范围:

...
import androidx.test.rule.ActivityTestRule

@RunWith(AndroidJUnit4::class)
@LargeTest
class InstrumentDialogFragmentTest {

    @get:Rule
    val activityRule = ActivityTestRule(MainActivity::class.java)
}

我的Gradle:

androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test:rules:1.4.0'

我遇到了这个警告:

'ActivityTestRule<T : Activity!>' is deprecated. Deprecated in Java

1
我遇到了同样的问题。在developers.android链接中,它声明:此类已被弃用,请使用ActivityScenario或ActivityScenarioRule代替。它们提供了一种更简单、更安全的控制Activity生命周期的方式。然后有一些转换的提示。很抱歉,我还没有时间尝试转换,所以我不知道转换的复杂程度。 - jmannz
2个回答

8
你仍然可以使用 'androidx.test:rules:1.2.0' 版本。 在 1.4.0 版本中已被弃用。 请改用 ActivityScenarioActivityScenarioRule。 了解更多关于 ActivityTestRule 的信息: developer.android

2

请替换此内容:

@get:Rule val testRule = ActivityTestRule(MainActivity::class.java, true, false)

...

testRule.launchActivity(intent)

转换成:

launchActivity<MainActivity>(intent)

这里有一篇关于AndroidX测试的好文章:点击


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接