首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改造2模拟最佳实践

改造2模拟最佳实践
EN

Stack Overflow用户
提问于 2018-02-15 07:13:46
回答 3查看 7.1K关注 0票数 8

我对测试和TDD非常陌生,我决定使用Retrofit2-Mock来满足我的api模拟需求。关于Mock Retrofit2的文档实际上是不存在的,我找到的唯一方法就是2015年的文章和2016年的回答

其中使用的是一个BehaviorDelegate类,它不实现模拟的api接口,需要包装。

是否有更优雅的方法来获得模拟api服务?

还是我忽略了整个问题,Retrofit2-Mock工具没有被认为是“最佳实践堆栈”?特别是因为很少有关于它的文章

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-07 14:36:08

我通常用Mockito这个

  1. 进口改装模型 com.squareup.retrofit2改造-模拟${version.retrofit}测试
  2. 创建并使用模拟 导入retrofit2.mock.Calls;导入静态org.mockito.Mockito.when;导入静态org.mockito.Mockito.mock;Api =模拟(Api.class);// Mockito模拟.when(api.doSomething(param)).thenReturn(Calls.response(response));

改造模拟仅用于生成响应。

票数 7
EN

Stack Overflow用户

发布于 2020-06-18 16:56:24

这个问题 on 改造后的Github回购询问的是您所询问的不存在的文档(在编写这个答案时它仍然是开放的)。

那么,您有两个选项(都在您已经提到的文章中),这取决于您想要如何定义您的Givens/Input

选项1:(奥肯特's MockWebServer)

如果您通常通过处理后端的json响应(使用类似于邮递员的东西)来启动TDD &如果您使用直接返回json的json作为测试的输入,您会觉得更有信心,那么使用MockWebServer,在这里您将复制/粘贴您已经拥有的json&从那里开始开发您的测试。

选项2:(改造自己的模拟Web服务器)

如果您更愿意使用objects来定义您已经在代码中使用的模型,这将使您的测试更具可读性和可控性,那么就像在官方样品 提到过 by @JakeWharton中使用它一样,使用Retrofit的模拟web服务器

这两个选项都是由相同的优秀的正方形人员开发/维护的,所以实际上是关于如何定义您的礼物/输入。

票数 8
EN

Stack Overflow用户

发布于 2020-10-26 06:49:06

嗯,我想这篇文章在这种情况下是有用的。

整个想法基于构建变体,您可以在真实服务器上的模拟服务器之间切换。

注释调用适配器侦听

这就是注释的样子:

代码语言:javascript
复制
    @Target(
    AnnotationTarget.FUNCTION,
    AnnotationTarget.PROPERTY_GETTER,
    AnnotationTarget.PROPERTY_SETTER
)
@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
annotation class MOCKUP(vararg val value: String)

在@GET @POST ...etc之前或之后的API中使用此注释

对于完整的示例这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48801720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档