簡體   English   中英

使用單元測試測試通知

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM