2

在谷歌sample for intents看着下面的方法:目的stubAllExternalIntents()在咖啡意圖測試

@Before 
public void stubAllExternalIntents() { 
    // By default Espresso Intents does not stub any Intents. Stubbing needs to be setup before 
    // every test run. In this case all external Intents will be blocked. 
    intending(not(isInternal())).respondWith(new ActivityResult(Activity.RESULT_OK, null)); 
} 

我看到所有的外部意圖將被阻止,但我不知道這是否方法起什麼作用?

回答

0

您想執行密封測試,這意味着您對系統意圖不感興趣,這可能會根據您的聲明導致測試的不穩定性,這就是爲什麼您禁止不是來自您的應用程序的意圖(not(isInternal()))。

0

它不會阻止這些意圖,但設置這些意圖被記錄,而不是傳遞給Android的意圖框架。稍後,您可以使用預期的()方法檢查所有意圖。它也可以用於內部意圖。

+0

評論清楚地說:「在這種情況下,所有外部意圖都將被阻止。」代碼也似乎這樣做,但你說「它不會阻止這些意圖......」 你能否請進一步解釋? –