我可以使用 Android 的测试框架测试状态栏通知吗?

我有一个类,在Android中发送状态栏通知。我找不到一种方法来测试通知是否已发送,这使得编写任何类型的有用单元测试都非常困难。

有人对此有解决方案吗?


答案 1

也许不是您正在寻找的答案,但像往常一样,解决方案是:

  • 创建一个抽象通知功能的接口。
  • 创建委托给系统通知 API 的默认实现。
  • 运行测试时,将默认实现替换为支持测试的模拟实现。

这可以通过以下技术进行简化:

  • 依赖注入框架(如RoboGuice)来简化实现的选择。
  • 模拟库(如 EasyMock)可自动创建模拟实现。

答案 2

尝试通过扩展 NotificationManager 创建一个 Mock 对象并重写这些方法。可以断言被覆盖的函数。在您的测试用例中,将 Mock 注入主题活动,并使用 Android JUnit 测试运行测试。notify()


推荐