类型推断失败:没有足够的信息来有趣地推断参数T getApplicationContext():T!请明确指定

问题描述 投票:0回答:1

我正在尝试为我的android应用程序编写一些测试,这对我来说真的很刺耳。许多障碍之一是此错误

Type inference failed: Not enough information to infer parameter T in fun <T : Context!> getApplicationContext(): T! Please specify it explicitly.

发生在此行上

val actualIntent: Intent = shadowOf(ApplicationProvider.getApplicationContext())
            .nextStartedActivity

完整的测试代码如下:>

@Test
fun clickingLogin_shouldStartLoginActivity() {
    val scenario = launch(LogInActivity::class.java)

    scenario.onActivity { activity ->
        activity.go_to_register_button.performClick()
        val expectedIntent = Intent(activity, RegistrationActivity::class.java)
        val actual: Intent = shadowOf(ApplicationProvider.getApplicationContext())
            .nextStartedActivity

        expectedIntent.component shouldBeEqualTo actual.component
    }
}

基本上,shadowOf函数已重载,可以返回许多想法,我需要指定类型。

我相信应该像shadowOf<SomeType>(...)这样的东西,但我不知道实际的类型应该是什么。

任何帮助将不胜感激。

编辑

我正在追踪roboloctric guideline,但尝试以androidX方式编写它]

我正在尝试为我的android应用程序编写一些测试,这对我来说真的很刺耳。许多错误之一是此错误类型推断失败:没有足够的信息来推断参数T in fun&...

android unit-testing kotlin compiler-errors robolectric
1个回答
0
投票

Intent是不从Object扩展的另一种Context


0
投票

Intent是不从Object扩展的另一种Context

此行:

val actualIntent: Intent = shadowOf(ApplicationProvider.getApplicationContext())

提供Context作为参数,并返回ShadowContext,而不是Intent

docs ref:http://robolectric.org/javadoc/3.0/org/robolectric/Shadows.html#shadowOf-android.content.Context-

基本上是告诉您一棵树不能成为汽车。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.