在乐器测试中发起额外的意图,在浓缩咖啡和Junit 5上进行活动。

发布于 2025-01-26 19:51:51 字数 1572 浏览 4 评论 0原文

我想启动我的activityscenarioextension,并附有startActivityIntentent的额外内容。我可以按照预期的方式进行无效的范围场景扩展启动

internal class TestMainActivity{
    @JvmField
    @RegisterExtension
    val scenarioExtension = ActivityScenarioExtension.launch<MainActivity>()

    @BeforeEach
    fun recreateActivity(scenario: ActivityScenario<MainActivity>){
        scenario.recreate()
    }
}

,但是我不确定如何添加所需的额外。

我只是尝试过任何真正的参考来解决如何实现这一目标,但我只是尝试过

@JvmField
@RegisterExtension
val scenarioExtension = ActivityScenarioExtension.launch<MainActivity>(
    Intent().putParcelableArrayListExtra("CROP_URIS", ArrayList())
)

,但是,这又导致了

java.lang.RuntimeException: Unable to resolve activity for: Intent { (has extras) }
at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:402)
at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:437)
at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:265)
at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:226)
at de.mannodermaus.junit5.ActivityScenarioExtension$Companion$launch$2.invoke(ActivityScenarioExtension.kt:130)
at de.mannodermaus.junit5.ActivityScenarioExtension$Companion$launch$2.invoke(ActivityScenarioExtension.kt:130)
at de.mannodermaus.junit5.ActivityScenarioExtension.beforeEach(ActivityScenarioExtension.kt:156)

有关junit 4的实施命题,我在

事先感谢您的任何帮助。

I'd like to launch my ActivityScenarioExtension with an extra attached to the startActivityIntent. The extra-less scenario extension launching, which works just as intended, I carry out via

internal class TestMainActivity{
    @JvmField
    @RegisterExtension
    val scenarioExtension = ActivityScenarioExtension.launch<MainActivity>()

    @BeforeEach
    fun recreateActivity(scenario: ActivityScenario<MainActivity>){
        scenario.recreate()
    }
}

, however I'm not sure as to how to add in the required extra.

Not having found any real reference addressing how to achieve that, I simply tried

@JvmField
@RegisterExtension
val scenarioExtension = ActivityScenarioExtension.launch<MainActivity>(
    Intent().putParcelableArrayListExtra("CROP_URIS", ArrayList())
)

, which however led to

java.lang.RuntimeException: Unable to resolve activity for: Intent { (has extras) }
at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:402)
at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:437)
at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:265)
at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:226)
at de.mannodermaus.junit5.ActivityScenarioExtension$Companion$launch$2.invoke(ActivityScenarioExtension.kt:130)
at de.mannodermaus.junit5.ActivityScenarioExtension$Companion$launch$2.invoke(ActivityScenarioExtension.kt:130)
at de.mannodermaus.junit5.ActivityScenarioExtension.beforeEach(ActivityScenarioExtension.kt:156)

The implementation propositions exclusively concerning JUnit 4 in turn, I've found in Espresso startActivity that depends on Intent, I didn't quite manage to transfer into the realm of JUnit 5 and its newly introduced Extension model.

Thanks in advance for whatever kind of help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

街角迷惘 2025-02-02 19:51:51

尝试以下操作:

private val intent = Intent(ApplicationProvider.getApplicationContext(), MainActivity::class.java).apply {
    putParcelableArrayListExtra("CROP_URIS", ArrayList())
}

@Rule
@JvmField
val activity = ActivityScenarioRule<MainActivity>(intent)

Try this:

private val intent = Intent(ApplicationProvider.getApplicationContext(), MainActivity::class.java).apply {
    putParcelableArrayListExtra("CROP_URIS", ArrayList())
}

@Rule
@JvmField
val activity = ActivityScenarioRule<MainActivity>(intent)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文