android - 如何在 Android 中使用单元测试或仪器测试来测试警报管理器

标签 android unit-testing junit alarmmanager instrumented-test

我在测试警报管理器上设置的警报时遇到了问题。我想使用单元测试或仪器测试来检查警报管理器。

val alarmManager1 = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager

val alarmIntent1 = Intent(context, AlarmReceiver::class.java)

val requestCode1 = 1
val pendingIntent1 = PendingIntent.getBroadcast(context, requestCode1, alarmIntent1, 0)

val calendar: Calendar = Calendar.getInstance()
val currentDateTime = LocalDateTime.now()

calendar.set(
        currentDateTime.year,
        currentDateTime.monthValue - 1,
        currentDateTime.dayOfMonth.plus(1),
        1,
        2,
        0
    )

alarmManager1.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.timeInMillis, pendingIntent1)

最佳答案

我相信您不需要检查是否会按时调用警报管理器,因为这是 Android OS 提供的功能并且已经过良好测试。
相反,您应该专注于您的业务逻辑,即警报响起时将触发的代码。
您始终可以在函数中提取此代码,然后可以通过常规 J​​Unit/Mockito 组合进行测试。

关于android - 如何在 Android 中使用单元测试或仪器测试来测试警报管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69625415/

相关文章:

android - 如何在Flutter中做隐式 Intent ?

Android 不在 HTTPS 上播放 HTML5 视频

android - 何时保存应用程序的状态

c# - 如何对采用对象数组并在 ASP.Net MVC 中返回 JsonResult 的 Action 方法进行单元测试

javascript - 如何关闭 Meteor 中的 Velocity 单元测试?

java - 如何使用mockito模拟Rest模板

php - 为什么我的 MySQL 日期字段显示为 "0000.00.00"?

unit-testing - 对于不编写单元测试有什么好的理由吗?

java - 通用 JUnit 测试

java - Android 检测运行失败 - 断言错误