2013-12-20 46 views
1

我試圖捕捉與Robolectric HTTP請求的方法記號化方法發送請求到服務器,我只是想測試後發送HTTP請求: 如果我嘗試無法捕捉與robolectric

//Cardtest.java 

Robolectric.setDefaultHttpResponse(200, "dummy"); 
card.tokenize(paymentHandler); 
Robolectric.getSentHttpRequest(0); 

的我有一個空數組錯誤

但我知道,因爲如果刪除第一行我有以下錯誤的請求被髮送:

Unexpected HTTP call POST 

如果我把日誌語句看起來,我的成功塊永遠不會被要求一個http請求。

如何確保我的HTTP請求成功回調被調用。

(我已經嘗試Robolectric.runUiThreadTasksIncludingDelayedTasks();)

感謝

+0

萬一你沒有行'Robolectric.getFakeHttpLayer ().interceptHttpRequests(false)' –

+0

感謝它的工作! – Elie

回答

0

正如我們在評論中討論。這個問題是因爲Robolectric配置爲不攔截HTTP請求:

Robolectric.getFakeHttpLayer().interceptHttpRequests(false) 
+0

我無法在Robolectric中找到getFakeHttpLayer()。你能告訴我在哪個修訂版中添加了嗎? – Gem

+0

如果您使用Robolectric 3.0,則需要包含其他依賴項http://mvnrepository.com/artifact/org.robolectric/shadows-httpclient/3.0。這隻適用於Apache的HTTP客戶端,所以如果你使用UrlConnection比它不起作用 –

+0

O我看到了,但不建議使用Apache HTTP客戶端,它有一些問題,這就是爲什麼我不使用它。 – Gem

0

上面的3.0和舊版本 您可以使用

FakeHttp.getFakeHttpLayer().interceptHttpRequests(false);