我对 robolectric 的问题是它不会产生真正的 HttpRequests。
我能否使用实际调用本地测试服务器的真实实现来替换 robolectric 的 HttpClient 实现?
最佳答案
Jan Berkel 提交了 a pull request到 3 月 8 日合并到 master 中的 Robolectric。您现在可以在测试开始时调用 Robolectric.getFakeHttpLayer().interceptHttpRequests(false);
以绕过 Robolectric 中模拟的 http 层。
您可以直接从Sonatype 下载jar。包含在您的 Eclipse Android 项目中。如果您正在使用 Maven 并且 1.1 尚未发布(请查看上面的 Sonatype url),那么您将需要添加 sonatype 快照存储库并使用 robolectric 1.1-SNAPSHOT。您可以通过将以下内容添加到您的 pom.xml 来完成此操作
<repositories>
<repository>
<id>sonatype-snapshots</id>
<name>Sonatype Snapshots</name>
<layout>default</layout>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>com.pivotallabs</groupId>
<artifactId>robolectric</artifactId>
<version>1.1-SNAPSHOT</version>
<scope>test</scope>
</dependency>
...
</dependencies>
我将其用于针对真实服务器运行的集成测试,并且运行良好。
关于android - 是否可以使用 robolectric 进行真正的 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9475998/