0
我已經使用Eclipse ADT + maven + Robolectric編寫了一個測試,如下所示。Android + Robolectric測試錯誤「java.lang.RuntimeException:Stub!」
public void testPostToConnectionsCorrect() {
setCorrectIP();
activity.postToConnections();
Mockito.verify(mainWebView).postUrl(Mockito.anyString(), EncodingUtils.getBytes(Mockito.anyString(), "UTF-8"));
}
private void setCorrectIP() {
Intent i = new Intent(Robolectric.getShadowApplication().getApplicationContext(),
ConnectionsContainerActivity.class);
i.putExtra("IPAddress", "135.127.21.183");
activity = Robolectric.buildActivity(ConnectionsContainerActivity.class).withIntent(i).create().visible().get();
mainWebView = Mockito.mock(WebView.class);
activity.setMainWebView(mainWebView);
}
但是當我運行「Maven的安裝」作爲follwing得到一個錯誤:
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 7.744 sec <<< FAILURE! - in com.ncr.cxp.client.connections.container.test.ConnectionsContainerActivityTest
testPostToConnectionsCorrect(com.ncr.cxp.client.connections.container.test.ConnectionsContainerActivityTest) Time elapsed: 7.65 sec <<< ERROR!
java.lang.RuntimeException: Stub!
at org.apache.http.util.EncodingUtils.getBytes(EncodingUtils.java:7)
at com.ncr.cxp.client.connections.container.ConnectionsContainerActivity.postToConnections(ConnectionsContainerActivity.java:166)
at com.ncr.cxp.client.connections.container.ConnectionsContainerActivity.onCreate(ConnectionsContainerActivity.java:150)
at android.app.Activity.performCreate(Activity.java:5008)
at org.fest.reflect.method.Invoker.invoke(Invoker.java:112)
at org.robolectric.util.ActivityController$1.run(ActivityController.java:116)
at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:256)
at org.robolectric.util.ActivityController.create(ActivityController.java:111)
at org.robolectric.util.ActivityController.create(ActivityController.java:123)
at com.ncr.cxp.client.connections.container.test.ConnectionsContainerActivityTest.setCorrectIP(ConnectionsContainerActivityTest.java:79)
at com.ncr.cxp.client.connections.container.test.ConnectionsContainerActivityTest.testPostToConnectionsCorrect(ConnectionsContainerActivityTest.java:70)
看來robolectric不能趕上這個「存根」異常並運行虛擬機的測試。我在過去的討論中嘗試了一些解決方案,但都沒有成功。
PS:我還在同一個項目中使用robolectric編寫了其他測試,它們都很好。只有這個測試有問題。
任何人都可以幫忙嗎?