[英]Testing notifications with unit tests
我有一堆通知类型,包含我想自动测试的条件。 我现在的问题是,我知道无法生成通知并检查通知中心生成的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
,我的数据也消失了。 我如何测试我的通知实施? 我想我想要接下来测试的PendingIntent
将无法工作。
我现在能做什么?
我现在的解决方案是嘲笑意图如下:
Intent action = spy(new Intent(NotificationManager.MY_ACTION));
doReturn(NotificationManager.MY_ACTION).when(action).getAction();
然而,这只是一种解决方法。 后来我遇到了Notification.Builder()
类在构建器模式中返回null的问题,所以这根本不会修复它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.