使用 Robolectric 测试 HTTPS 连接

Using Robolectric to test HTTPS connections

我的项目使用 HTTPS:

URL url = new URL("https://blah.com");
HttpsURLConnection urlConnection = (HttpsURLConnection)url.openConnection();
...

是否可以使用 Robolectric 进行测试?据我所知,FakeHttpLayer 似乎不适用于 HTTPS:

FakeHttpLayer fakeHttpLayer = new FakeHttpLayer();
fakeHttpLayer.setDefaultHttpResponse(200, "All ok");

对我的应用没有影响,它点击了 java.net.SocketException: Network is unreachable: connect

(当然我需要整理证书以便我的应用程序信任影子。)

如果我理解你的评论是正确的,那么我的建议将是下一个:

  • 创建一个class Network(随便命名)
  • 在你要联网的地方注入
  • 在测试中模拟它并检查你是否正确调用它