我正在使用 Kotlin 开发一个 Android 应用程序。我正在我的项目中添加仪器测试。现在,我正在努力测试是否在启动另一个活动后没有打开一个活动。这是我的场景。
我有启动 LoginActivity 的 MainActivity。
这是 MainActivity 的代码
class MainActivity : AppCompatActivity() {
companion object {
val LAUNCH_DELAY: Long = 2000
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Handler().postDelayed({
this.startLoginActivity()
finish() //please, pay attention here
}, LAUNCH_DELAY)
}
protected fun startLoginActivity()
{
startActivity(Intent(this, LoginActivity::class.java))
}
}
正如您在上面的代码中看到的,我在启动 LoginActivity 后调用了 finish() 方法来终止活动。我想测试是否在由主活动启动的登录活动中按下后退按钮,应用程序是否关闭并且它不会返回到主活动。
这是我的测试课
@RunWith(AndroidJUnit4::class)
class MainActivityTest {
@Rule @JvmField
val mainActivityRule: ActivityTestRule<MainActivity> = ActivityTestRule<MainActivity>(MainActivity::class.java)
@Rule @JvmField
val loginActivityRule: ActivityTestRule<LoginActivity> = ActivityTestRule<LoginActivity>(LoginActivity::class.java)
@Before
fun setUp() {
}
@Test
fun mainActivityHistoryIsForgottenAfterStartingLoginActivity()
{
Intents.init()
Thread.sleep(MainActivity.LAUNCH_DELAY);
Intents.release()
pressBack()
//here how can I assert if the main activity is not open.
}
}
请注意代码中的注释。我喜欢断言主活动是否未打开,或者在登录活动中按下后退按钮时它不会返回主活动。我该如何测试它?