android studio 单元测试和ui测试,Android Instrumentation测试和Android Studio中的单元测试之间的区别?...

单元测试隔离了被测试的组件,这就是为什么经常将Mocks框架与Mockito一起使用的原因:因为将单元与其依赖项隔离开来。请注意,您所说的关于Android API的说法部分正确,因为还存在Instrumented Unit测试,即Instrumentation也是Junit包的一部分,并且将TestCase扩展为类AndroidTestCase的类也是Junit包的一部分,但允许使用A)Context(可以使用getContext()调用)和B)作为Android API一部分的资源!另外,请考虑AndroidTestCase是基类,还有一些其他非常有用的类可以扩展该类。他们专门测试加载程序,ContentProviders甚至服务,并且他们可以访问Android API。因此,这些类提供了JUnit测试框架以及特定于Android的方法。现在,借助Junit4,有一个ServiceTestRule直接从Object扩展,并且使您可以更轻松地测试Service,尽管您不能直接在此类内启动Intent。

工具测试也包含在Junit软件包中,但是Android API的控制是完全完全的,因为工具测试在运行任何应用程序代码之前已在系统中实例化,并且要测试您需要打开真实的应用程序(模拟器或电话) 通过USB连接)。 他们可以访问android组件(例如单击一个按钮)并延长应用程序的生命周期,通常比Junit测试(用于扩展TestCase的测试)(上述测试)要慢,典型的用法是使用ActivityInstrumentationTestCase2,它具有功能测试方法,面向用户。

编辑:关于Roboelectric和Mockito,它们是当下(2016年7月13日)在最受欢迎的测试框架之间与Espresso结合使用的,Roboelectric允许您在几秒钟内而不是几分钟内运行多个测试,这对于必须运行连续测试并且需要持续集成的团队来说非常方便。

从Robolectric网站:

Robolectric的另一种方法是使用模拟框架,例如   Mockito或模拟出Android SDK。 虽然这是有效的   方法,它通常会产生本质上相反的测试   应用程序代码的实现。   Roboelectric的测试风格更接近黑匣子测试,   使测试更有效地进行重构并允许测试   专注于应用程序的行为,而不是   Android的实现。 您仍然可以使用模拟框架   如果愿意,可以与Robolectric合作。

Mockito也可以与Junit一起使用,实际上是在必须管理最终类,匿名类或原始类型时使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值