[英]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.