我已经开发了一个带有登录屏幕的小应用程序,并且还编写了一些Espresso脚本来实现同样的自动化。
我知道,WireMock是一个灵活的库,用于顽固和嘲弄web服务。在此帮助下,您可以创建实际的HTTP服务器,以便您的代码可以连接到实际的web服务。
现在我想在wiemock.com的帮助下开发用于登录屏幕的web服务,我已经了解了提供的这里细节,但是描述过于技术性。如果任何人有任何教程,参考或想法如何做同样的,这将是伟大的。
我正在使用下面的工具。
发布于 2015-09-18 08:37:06
免责声明:我是一个java开发人员,从未在android上开发过。
你真的想这么做吗?为什么不将您的webservice调用包装在一个具有接口的类中呢?(使用贾克斯或类似的)。这样,测试就会简单得多,因为您可以模拟一个普通的旧接口(使用莫基托或类似的接口)。
这种方法的好处是,如果web服务接口以不兼容的方式更改(因为测试将不再编译),那么测试将“快速失败”。
一直在嘲笑http请求/响应,与模拟接口相比,这听起来很冗长,也很难维护。
发布于 2016-10-14 08:35:47
您可以像这样从验收单元测试中运行wiremock:
@Rule
public WireMockRule wireMockRule = new WireMockRule(options().port(PORT).notifier(new ConsoleNotifier(true)));
@Rule
public ActivityTestRule<T> activityRule = new ActivityTestRule<T>(type) {
@Override
protected void beforeActivityLaunched() {
stubFor(get(urlPathEqualTo("/myUrl"))
.willReturn(aResponse()
.withStatus(200)
.withBody("{ 'status': 'OK' }")));
}
};
@Before
public void before() {
activityRule.getActivity();
}
@Test
public void test() {
// using espresso trigger the call on your activity
}我以为你有浓咖啡,你知道怎么用。注意,存根必须在beforeActivityLaunched方法中,否则如果活动在开始时进行一些调用,那么存根还没有准备好。
发布于 2019-04-23 17:28:03
我想补充以前的答案,并建议使用Wiremock -RS (免责声明:我是作者)。如果你用JAX来表示你的界面,它允许你自动执行你的任务.
它添加了如下所用的WireMockJaxrs.invocation(...)方法:
final List<ItemDTO> responseObject = Arrays.asList(new ItemDTO("pong"));
final StubMapping sm =
stubFor( //
invocation(ItemResouce.class, (r) -> r.getItems()) //
.willReturn(aResponse().withStatus(SC_ACCEPTED), responseObject));https://stackoverflow.com/questions/32644214
复制相似问题