我正在运行模拟 Web 服务器来测试 REST API 调用,当活动启动并启动 mockWebserver 并执行 API 调用时,连接被拒绝,使用 OKHTTP v-3.10.0 和 Retrofit 2.3.0
活动测试代码:
@Rule
public ActivityTestRule<STBUpgradeActivity> mActivityRule = new ActivityTestRule<>(STBUpgradeActivity.class, false, false);
private MockWebServer server;
@Before
public void setUp() throws Exception {
super.setUp();
server = new MockWebServer();
server.start();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
String serverUrl = server.url("/").toString();
EnvConfig.WEB_API_SIT = serverUrl;
}
@Test
public void testPageContentIsShown() throws Exception {
String fileName = "stb_upgrade_page_content_200.json";
server.enqueue(new MockResponse()
.setResponseCode(200)
.setBody(RestServiceTestHelper.getStringFromFile(getInstrumentation().getContext(), fileName)));
Intent intent = new Intent();
mActivityRule.launchActivity(intent);
onView(withId(R.id.button_upgrade)).check(matches(isDisplayed()));
onView(withText("New residential subscribers and standard install only. If Sports is a part of your package")).check(matches(isDisplayed()));
}
======= RestAPI 客户端
private Retrofit getClient() {
retrofit = new Retrofit.Builder()
.baseUrl(WEB_API_HOST)
.addConverterFactory(GsonConverterFactory.create())
.client(getHttpClient())
.build();
return retrofit;
}