用于在Android中脱机testing服务器响应的透明代理

我有一个数据驱动的Android应用脚手架。 增加testing,瞄准100%覆盖面。 使用OkHttp 。

我如何透过拦截模拟回应调用我的服务器?

想要这个端到端和unit testing。 例如:将生成types设置为MockServer应该加载一个将在模拟器中显示模拟响应的应用程序。

你看了okhttp mockwebserver ?

我用它来嘲笑响应和validation/显示请求。

如果你想用这种构buildtypes,你可以在gradle中生成一个Android资源或java常量,然后启动服务器并相应地设置path。

对于unit testing,您应该能够编写代码,以隔离OkHttp的使用。 在这样做的时候,你可以嘲笑客户端(使用类似Mockito的东西),然后让它performance出你想要的。 毕竟,在unit testing中,我们只想testing一段代码,而不是任何依赖。

在Java中是这样的。 同样,模式在其他地方(比如Javascript)

 public class ClassUnderTest { private final OkHttpClient client; public ClassUnderTest(OkHttpClient client) { this.client = client; } // Other code... } // In your tests OkHttpClient mockClient = mock(OkHttpClient.class); when(mockClient.newCall(any(Request.class)).thenThrow(...); ClassUnderTest testClass = new ClassUnderTest(mockClient); verify(mockClient).doSomething(); 

对于集成testing,mockwebserver看起来是你最好的select(正如其他人所说的)。