作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用 BaseTest
Espresso 类是这样的:
abstract class BaseTest<T : Activity> {
val context: Context = InstrumentationRegistry.getInstrumentation().targetContext
abstract fun getTestActivity(): IntentsTestRule<T>
abstract fun startIntentActivity()
@Rule
@JvmField
var activityTestRule = this.getTestActivity()
fun launchActivity(intent: Intent?) {
getTestActivity().launchActivity(intent)
}
@Before
fun setUp() {
startIntentActivity()
}
@After
fun tearDown() {
activityTestRule.finishActivity()
}
}
但现在我看到了 abstract fun getTestActivity(): IntentsTestRule<T>
已弃用,我们应该使用 ActivityScenario
和 ActivityScenarioRule
我应该如何修改该类以使用新类?
最佳答案
通常,可以使用 Espresso 或 ActivityScenarioRule
提供 Intent
:
ActivityScenarioRule(Intent startActivityIntent)
Constructs ActivityScenarioRule with a given intent.
在 Kotlin 中:
lateinit var scenario: ActivityScenario<SomeActivity>
val intent = Intent(ApplicationProvider.getApplicationContext(), SomeActivity::class.java)
@get:Rule
val activityRule = activityScenarioRule<SomeActivity>(intent)
@Test
fun someTest() {
scenario = rule.scenario
scenario.onActivity { activity ->
...
}
}
@After
fun cleanup() {
scenario.close()
}
关于android - IntentsRule 已弃用 Espresso,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67122525/
我是一名优秀的程序员,十分优秀!