首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要使用Mockito的Robolectric示例来编写单元测试用例

需要使用Mockito的Robolectric示例来编写单元测试用例
EN

Stack Overflow用户
提问于 2018-09-24 07:24:53
回答 1查看 843关注 0票数 1

如果有人建议我编写API调用的单元测试用例,我也尝试使用Robolectric,但是它只运行标签和操作,但是对于API调用中如何编写单元测试,请帮助我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-14 16:43:24

就我所理解的Android测试而言,你不会把Mockito和Robolectric结合在一起。

为了不需要在模拟器或物理设备上测试您的仪器化测试,您可以使用Robolectric进行测试,而是在JVM上进行测试。那是罗波利克。这也允许您访问android框架,而且速度更慢。

另一方面,Mockito是一个库,允许您模拟:单元测试中的依赖项。单元测试的目的是测试您希望测试的特定软件实体的行为,具体而言是它的逻辑。因为它不能访问android框架(它不需要),所以它的速度要快得多。

编辑:

其实更复杂。您可以将Robolectric与Mockito一起使用(通过引入Mockito规则作为Runner --您有2名跑步者,一名@RunWith(AndroidJunit4) - MockitoRule)。你只需单元测试一些需要使用Robolectric访问android的东西,而不需要实际启动一个活动.因此,这些是我可以在Android上提出的测试配置:

  1. (/test)简单JUnit
  2. (/test) JUnit + Mockito -设计模式中的经典单元测试
  3. (/test) AndroidJUnit (Robolectric) + Mockito而不启动活动--需要android实例和模拟的单元测试
  4. (/test) **AndroidJUnit (Robolectric) -启动活动,用浓缩咖啡测试UI
代码语言:javascript
运行
复制
1. (/instrumentedTest) **AndroidJUnit** - the same thing, test ui with espresso

或者你也可以拥有sharedTest。两个都只有一个文件夹。有了这个选项,您就可以在设备上和VM上运行一个测试,我只是不确定如何运行。也许氮气会在未来引入这一选择。https://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/

现在,您可以为特定类设置测试环境的方法很多。我希望氮气项目将简化这一决策,并就此提供一个良好的文件。

编辑

事实上,我写这篇评论的时候是错的。您可以在频域测试中模拟依赖项。您可以通过依赖注入(Koin,Dagger 2)和使用相同的抽象创建不同的依赖关系图来实现这一点。(复杂,看看在一些博客里.在这里不会详细说明)

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

https://stackoverflow.com/questions/52474455

复制
相关文章

相似问题

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