MockWebServer Android测试在CI上失败
我用MockWebServer编写了一个单元测试,以捕获改型引发的ConnectionExceptions,并将它们转换为域级错误MockWebServer Android测试在CI上失败,android,unit-testing,bitrise,mockwebserver,Android,Unit Testing,Bitrise,Mockwebserver,我用MockWebServer编写了一个单元测试,以捕获改型引发的ConnectionExceptions,并将它们转换为域级错误 @Test fun `check that factory returns no internet error for ConnectException when no internet`() { val response = MockResponse() .setSocketPolicy(SocketPolicy.DISCONNEC
@Test
fun `check that factory returns no internet error for ConnectException when no internet`() {
val response = MockResponse()
.setSocketPolicy(SocketPolicy.DISCONNECT_AFTER_REQUEST)
whenever(connectionChecker.isConnected())
.thenReturn(false)
mockWebServer.enqueue(response)
val result = apiService.getAllBreads()
.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
.test()
result.assertError(PawzNoInternetError::class.java)
}
此测试在本地运行良好,但在Bitrise上失败强>
测试中的代码是一个自定义的改装CallAdapter.Factory,在本地调试代码时,抛出的错误实际上是一个ConnectionException,因此测试通过。
在Bitrise上运行测试时,我得到:
java.io.IOException: unexpected end of stream on Connection
这会导致测试失败
有人知道我如何解决这个问题吗?我在Azure中遇到了同样的问题:(通过使用和配置MockWebServer以使用端口8080修复了我的问题,希望有帮助)我在Azure中遇到了同样的问题:(通过使用和配置MockWebServer以使用端口8080修复了我的问题,希望有帮助