Android 有人成功地用机器人分子模拟了httprequest吗?

Android 有人成功地用机器人分子模拟了httprequest吗?,android,http,testing,mocking,Android,Http,Testing,Mocking,我只是从机器人分子开始。模拟大多数Android类似乎效果不错,但当我的被测类尝试创建DefaultHttpClient()时,会出现可怕的“Stub!”错误 测试中的类在此行失败: HttpClient httpclient = new DefaultHttpClient(); 尽管在上的文章似乎建议这应该是可行的 我的测试如下所示: @Before public void setUp() throws Exception { Robolectric.addPendingHttpResp

我只是从机器人分子开始。模拟大多数Android类似乎效果不错,但当我的被测类尝试创建DefaultHttpClient()时,会出现可怕的“Stub!”错误

测试中的类在此行失败:

HttpClient httpclient = new DefaultHttpClient();
尽管在上的文章似乎建议这应该是可行的

我的测试如下所示:

@Before
public void setUp() throws Exception
{
  Robolectric.addPendingHttpResponse(200, "OK");
  service = new CheckinService();
}

@Test
public void testIt() throws IOException
{
  // Fails at HttpClient httpclient = new DefaultHttpClient()
  service.doStuff(Robolectric.application,
                  REG_ID,
                  TEST_DOMAIN);
}

知道我做错了什么吗?

在pom.xml中,将机器人分子依赖项移到android依赖项之上。

在eclipse中修复了它。 我花了一段时间才弄明白如何解决这个问题,但问题是:
转到您的测试项目首选项>构建路径>订购和导出>选择robolectric jar,然后按“移到顶部”。

我没有使用maven,因此我不知道如何在没有它的情况下复制它。有什么想法吗?听起来像是我需要的。这个方法解决了Eclipse+ADT中大量看似随机的问题。我没想到在这里用它!请注意,如果您使用的是比robolectric更新版本的android支持库,您需要确保在构建路径中高于robolectric。使用IntelliJ/android Studio和Maven,我必须将android平台移动到所有Maven依赖项之下,而不仅仅是robolectric。