我使用Android Volley进行http请求/响应。
com.android.volley:volley:1.0.0
我在文件夹" androidTest"中编写我的Android检测单元测试。
我通过JUnit和Espresso测试我的逻辑和UI。一切正常。
我的Espresso测试之一:
@Test
public void addFavorite() {
onView(withId(android.support.design.R.id.search_src_text)).perform(typeText(CONTACT_SURNAME)).perform(closeSoftKeyboard());
onData(anything()).inAdapterView(withId(R.id.containerNotEmptyListView)).atPosition(0).onChildView(withText(R.string.add_favorites))
.perform(click());
onData(anything()).inAdapterView(withId(R.id.containerListView)).atPosition(0).onChildView(withText(R.string.remove_favorites))
.check(matches(isDisplayed()));
}
此Espresso测试:
CONTACT_SURNAME
此Espresso测试工作正常。 OK!
现在我想编写单元测试(也在文件夹" androidTest"中):
检查成功响应(http状态= 200)然后显示Toast
检查是否有错误的回复(例如http状态= 403),然后显示对话
所以,要做到这一点,我需要一些工具返回给我STUB http响应。
我希望此工具必须具有以下选项:
直接从Android应用程序(在androidTest文件夹中)编写测试。 像这样:
@Test
public void exactUrlOnly() {
stubFor(get(urlEqualTo("/some/thing"))
.willReturn(aResponse()
.withHeader("Content-Type", "text/plain")
.withBody("Hello world!")));
assertThat(testClient.get("/some/thing").statusCode(), is(200));
assertThat(testClient.get("/some/thing/else").statusCode(), is(403));
}
此工具可以在http响应正文中返回json。 像这样:
{
"response": {
"status": 200,
"body": "Hello world!",
"headers": {
"Content-Type": "text/plain"
}
}
}
有人知道这样的工具吗? 感谢。