Robolectri c выдает ошибку несоответствия типа при попытке запустить Activity Android - PullRequest
1 голос
/ 14 июля 2020

Я пытаюсь запустить экземпляр MainActivity с помощью robolectri c. Но вот ошибка ниже.

введите описание изображения здесь

Код

@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)

    }
}

1 Ответ

1 голос
/ 14 июля 2020

buildActivity возвращает ActivityController, а не сам Activity. Это позволяет вам управлять жизненным циклом Activity с помощью start(), resume(), pause(), destroy(), et c. методы.

Чтобы получить сам Activity, просто вызовите get() для возвращенного ActivityController.

Итак, ваш код будет выглядеть так:

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()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...