junit.framework.AssertionFailedError: ожидалось: , но было:

#java #android #android-testing #android-instrumentation

#java #Android #android-тестирование #android-инструментарий

Вопрос:

У меня есть действие с a Button в нем. Нажав на кнопку, я звоню finish() . Проблема в том, что когда я пишу инструментальный тест, чтобы проверить, уничтожена ли активность, я получаю

junit.framework.AssertionFailedError: ожидалось: <УНИЧТОЖЕНО>, но было:<ВОЗОБНОВЛЕНО>

Мои вопросы

  • Почему состояние сохраняется RESUMED даже после finish() вызова?
  • Разве это не правильный метод для проверки состояния активности?

Вот моя активность

MainActivity.kt

 class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        findViewById<Button>(R.id.b_kill_me).setOnClickListener {
            finish()
        }
    }
}
  

Вот мой тест

MainActivityTest.kt

 class MainActivityTest {
    @Test
    fun killMe() {
        val mainActivity = ActivityScenario.launch(MainActivity::class.java)
        onView(withId(R.id.b_kill_me)).perform(click())
        assertEquals(Lifecycle.State.DESTROYED, mainActivity.state)
    }
}
  

Вот полный исходный код: ссылка на Google Диск