Robolectric 尝试初始化时出现类型不匹配错误 Activity Android
Robolectric gives type mismatch error when trying to init Activity Android
我正在尝试在 robolectric 的帮助下初始化 MainActivity 实例。但是下面出现错误。
代码
@RunWith(RobolectricTestRunner::class)
class MainActivityTest {
lateinit var mMainActivity: MainActivity
@Before
fun setUp() {
// GIVEN
val controller = buildActivity(MainActivity::class.java)
// WHEN
mMainActivity = buildActivity<MainActivity>(MainActivity::class.java)
}
}
buildActivity
返回 ActivityController
,而不是 Activity
本身。这允许您通过 start()
、resume()
、pause()
、destroy()
等方法控制 Activity
的生命周期。
为了获得 Activity
本身,只需在返回的 ActivityController
上调用 get()
。
因此您的代码如下所示:
import org.robolectric.android.controller.ActivityController
// other imports here
@RunWith(RobolectricTestRunner::class)
class MainActivityTest {
lateinit var mMainActivity: MainActivity
lateinit var mController: ActivityController<MainActivity>
@Before
fun setUp() {
mController = buildActivity(MainActivity::class.java)
mMainActivity = mController.get()
// Optional, bring the Activity to whatever state you want
mController.resume()
}
}
我正在尝试在 robolectric 的帮助下初始化 MainActivity 实例。但是下面出现错误。
代码
@RunWith(RobolectricTestRunner::class)
class MainActivityTest {
lateinit var mMainActivity: MainActivity
@Before
fun setUp() {
// GIVEN
val controller = buildActivity(MainActivity::class.java)
// WHEN
mMainActivity = buildActivity<MainActivity>(MainActivity::class.java)
}
}
buildActivity
返回 ActivityController
,而不是 Activity
本身。这允许您通过 start()
、resume()
、pause()
、destroy()
等方法控制 Activity
的生命周期。
为了获得 Activity
本身,只需在返回的 ActivityController
上调用 get()
。
因此您的代码如下所示:
import org.robolectric.android.controller.ActivityController
// other imports here
@RunWith(RobolectricTestRunner::class)
class MainActivityTest {
lateinit var mMainActivity: MainActivity
lateinit var mController: ActivityController<MainActivity>
@Before
fun setUp() {
mController = buildActivity(MainActivity::class.java)
mMainActivity = mController.get()
// Optional, bring the Activity to whatever state you want
mController.resume()
}
}