我正在尝试为我的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&...
Intent
是不从Object
扩展的另一种Context
。
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-
基本上是告诉您一棵树不能成为汽车。