android – 使用单元测试测试通知

android – 使用单元测试测试通知,第1张

概述我有一堆通知类型,包含我想自动测试的条件.我现在的问题是,我知道无法生成通知并检查通知中心生成的UI是否与预期的一样. 因此,我试图将其分解为调用我的BroadcastReceiver并拦截我触发通知的那一点.所以在那时我可以检查通知是否包含我期望的所有设置.我不得不希望它会按预期呈现:-) 在我的build.gradle中,我添加了这个块: testOptions { unitTests 我有一堆通知类型,包含我想自动测试的条件.我现在的问题是,我知道无法生成通知并检查通知中心生成的UI是否与预期的一样.

因此,我试图将其分解为调用我的broadcastReceiver并拦截我触发通知的那一点.所以在那时我可以检查通知是否包含我期望的所有设置.我不得不希望它会按预期呈现:-)

在我的build.gradle中,我添加了这个块:

testoptions {    unitTests.returnDefaultValues = true}

这开始我的麻烦我创建了Intent并调用接收器:

@RunWith(MockitoJUnitRunner.class)public class NotificationTest {    @Mock    Context mMockContext;    @Test    public voID firsttest() {        notificationmanager manager = new notificationmanager();        manager.onReceive(mMockContext,new Intent(notificationmanager.MY_ACTION));    }}

这段代码崩溃了NullPointerException,因为我在broadcastReceiver中有这条好行:

switch(intent.getAction()) {

我可以想象这里发生了什么.模拟API不会创建真正的Intent,我的数据也消失了.我如何测试我的通知实施?我想我想要接下来测试的PendingIntents将无法工作.

我现在能做什么?

解决方法 我现在的解决方案是嘲笑意图如下:

Intent action = spy(new Intent(notificationmanager.MY_ACTION));doReturn(notificationmanager.MY_ACTION).when(action).getAction();

然而,这只是一种解决方法.后来我遇到了Notification.Builder()类在构建器模式中返回null的问题,所以这根本不会修复它.

总结

以上是内存溢出为你收集整理的android – 使用单元测试测试通知全部内容,希望文章能够帮你解决android – 使用单元测试测试通知所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1123597.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存