展开

关键词

Android

Android有两种方式:本地和设备,本地可以直接运行在本地机器上面的Java Virtual Machine(JVM)。 它的特点是运行时间短,执行效率高,但是没有Android framework的支持,每个文件都可以进行独的。 而在Android设备上的,运行的是一个独的APK,直接运行到虚拟机或者物理Android设备上,这种拥有整个App的生命周期和运行环境。 这里主要介绍以运行在Android设备上的为主。文件在哪里?首先先看下文件是什么位置,下面是一个Android项目的基本结构:? 知道了文件的目录,下面就看下如何配置环境。配置环境需要使用,需要引入的依赖库,在AndroidManifest.xml里面添加uses-library:

69610

Android Robolectric

参考:Android(四):Robolectric框架的使用官网----通过实现一套 JVM 能够运行的 Android 代码,从而实现脱离 Android 环境进行。 BuildConfig.class)public class SandwichTest {}它可以方便地对 Activity,Fragment,Service,BroadcastReceiver 进行 public void onClick(View view) { startActivity(new Intent(MainActivity.this, LoginActivity.class)); }});时框架 Robolectric.buildActivity(MyAwesomeActivity.class).create().start().resume().visible().get();如果需要和页面控件交互,需要调用 visible() 来保证在中可以交互 ShadowPerson shadowPerson = extract(person); assertEquals(AndroidUT, shadowPerson.getName()); }}例子前面

86030
  • 广告
    关闭

    11.11智惠云集

    2核4G云服务器首年70元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    当 Espresso 遇见 Android

    作者:施亮团队:腾讯移动品质中心TMQ引言在Android中,不依赖Android环境的可以使用Junit。 如果依赖Android环境,但是没有UI相关或者UI比较简(如点击按钮)的可以使用开源库Robolectric解决依赖问题,使运行在JVM上,而非模拟器上,大大提高运行效率。 对象如果项目是组件化开发的架构,将各个同类功能的代码整合在一个组件中,以便整体打包,便于维护,模块解耦合,持续构建等,可以减少底层修改导致上层错误的风险。 方案落地想对复杂UI控件的代码进行,设计了如下方案。 代码如下:若隐藏星期显示时,却隐藏了年显示,则会报错。由此,hideWeekDay(boolean hide)完成。

    80110

    Android框架Espresso介绍

    大家都知道,Android系统原生态APP目前最好的工具使UiAutomation,随着DevOps的普及,我们需要尽早地发现程序中的缺陷,所以变得非常重要,Android系统推出了Espresso 框架。 可以独立APP建立专门的Project,Espresso必须建立在待APP同一个目录下。 下面我向大家简介绍一下Espresso。进行Espresso,首先在待APP的build.gradle(module.app)中作如下的配置。 同步完成,我们在待代码的androidTest建立代码,下面是这段Espresso代码。

    32730

    详解Android最佳实践

    目的 充分的就是提高代码质量最有效的手段之一,而严重依赖代码的可性,本文主要通过一个简的DEMO演示如何对Android原生应用进行,同时示例代码采用MVP模式以提高代码的可读性和可性简介 在Android原生应用开发中,存在两种:本地JVM和Instrumentation。 本文仅介绍本地JVM本地jvm的 这种方式运行速度快,对运行环境没有特殊要求,可以很方便的做自动化,是首选的方法Instrumentation Instrumentation 这种方式运行速度慢,且严重依赖Android运行环境,更适合用来做集成准备 我准备了一个简的APP,模拟一个耗时的网络请求获得一段数据并显示在界面上,针对这个APP编写用例并进行本地 Robolectric是一个开源的框架,能够完全模拟Android SDK并在JVM中运行。

    36031

    Android 和 UI 初步实践

    通常大型项目都是通过黑盒等方式来提供质量相关的保障,但同时笔者认为也需要 Android 端的以及能自动在 Android 平台上运行的 UI ,这几种有以下几个优势:更早发现代码中存在的 ,笔者将尝为自己的项目(基于 MVP 架构开发)补充相应的用例和 UI 用例,来初步实践下如何在 Android 平台编写和运行相关的用例。 Android 实践创建新用例如果需要编写一个新的本地用例,只需打开你想的 java 代码文件,然后点击类名 – ⇧⌘T(Windows:Ctrl+Shift+T)– 选择要生成的方法 至此,一个 Android用例编写完成。通过 Android Studio 直接运行此用例,结果如下:? 需要明白一个点:它只是一个方法,它不是一整个 APP 的功能流程,即不会涉及到数据库或网络等复杂的外部环境。

    62110

    Android之对Activity的示例

    上一篇文章已经介绍了的作用和简示例,如果不了解的读者可以先阅读上一篇Android-作用以及简示例。 这篇文章主要介绍常见的Activity中的。 对Acitivity的对于Activity,我们大致有两种需求: 1、在Activity正常启动后,查看界面布局是否正确,包括View的点击事件等是否正确。 对于这两种需求,笔者分别做了两个示例解说: 1、检一个布局中的button和TextView是否正确。 布局View的:package com.example.xujiajia_sx.myexpressotest; import android.app.Activity;import android.os.Bundle

    54841

    编写你的第一个 Android

    来源:http:www.51testing.com  本文主要面向新手,首先简介绍了什么是,为什么要写,讨论了一下 Android 项目中哪些代码适合做,并以一个简例子演示了如何编写属于你的第一个 Android (kotlin 代码)。 Android   Android 项目默认会创建两个目录,分别为 srctest 和 srcandroidTest 前者是目录,后者是依赖 Android 框架的 instrumentation 一个好的的一个重要特性就是运行速度要快,通常是毫秒级的,而依赖 Android 框架的代码都需要在模拟器上或者真机上运行(也不是绝对的),速度不可避免的会慢很多,所以我们在做 Android 的时候会避免让被代码对 编写第一个 Android  SETUP  Android 主要使用是 JUnit 框架 + Mockito Mock 类库 + Mockito-kotlin 的扩展库,需要在 build.gradle

    29620

    Android框架Robolectric3.0(一):入门篇

    1关于Robolectric3.0作为一个软件开发攻城狮,无论你多不屑多排斥,它都是一种非常好的开发方式,且不谈TDD,为自己写的代码负责,自己写的代码,在自己力所能及的范围内提高产品的质量 所以,写好,爱惜自己的代码,爱惜颜值高的QA妹纸,爱惜有价值的产品(没价值的、政治性的、屁股决定脑袋的产品滚粗),人人有责! 对于Android app来说,写起来瞻前顾后,一方面需要运行在模拟器上或者真机上,麻烦而且缓慢,另一方面,一些依赖Android SDK的对象(如Activity,TextView等) 本文对Robolectric3.0做了简介绍,并列举了如何对Android的组件和常见功能进行的示例。2环境搭建Gradle配置在build.gradle中配置如下依赖关系:? 以上代码的用例:?6Shadow的使用Shadow是Robolectric的立足之本,如其名,作为影子,一定是变幻莫,时有时无,且依存于本尊。

    27330

    Android框架Robolectric3.0(二):数据篇

    文章目录闲话日志输出网络请求篇数据库篇Love UT 1闲话我们经常讲“前人种树,后人乘凉”,然而在软件开发中,往往呈现出来的却是截然相反的景象,我们在绩效和指标的驱使下,主动或被动的留下来大量坏味道的代码 所以,为了打破轮回,从一点一滴做起吧,“树”的种类众多,作为任意一名普通的软件工程师,种好这棵树,便是撒下一片荫凉。关于,很多人心中会有以下几个疑问: (1)为什么要写? (4)我要怎么写UT(特别是Android)?关于第一个问题,首先我们反问自己几个问题:以上,便是写好的意义。 (2)当你写的时候,是不是发现很多代码无法? 这个话题太老生常谈了,配备有价值的、高覆盖率的可解决此问题。(4)当你在写Android代码(比如网络请求和DB操作)的时候,是如何的?

    32420

    详解Android方法与步骤

    说明:1、在Application节点中Activity前添加

    23720

    浅谈Android的作用以及简示例

    前提概要受人嫌弃的对于这个知识点,其实很多开发者是不太接触的,包括笔者,在实习之前也并未实用过,或者说并没感受到的好处。 就一定程度上处理了这种困难的情况:给每一个模块加上,如果该模块可以通过,就代表没有问题。 Assert方法示例本身比较简,但是对于刚刚接触读者可能对assertEquals()比较陌生,这是Assert这个类中的静态方法,中一般就是通过它来判断是否达到理想的效果。 的作用和简的示例。 但是简的对方法的相信并不能满足求知欲强烈的读者。下一篇文章笔者会讲述android中对Activity的方法。 以上就是本文的全部内容,希望对大家的学习有所帮助。

    9721

    Android Retrofit Unit Test

    logging; } public Service provideService() { return provideRetrofit().create(Service.class); }}Unit Test async 异步public void testSomething() { final CountDownLatch signal = new CountDownLatch(1); Service.doSomething See http:g.coandroidstudionot-mocked for details.在 build.gradle 下面 android 项目下添加:android { ... testOptions { unitTests.returnDefaultValues = true }}添加用例public class InjectionTest { @Test public void provideRecoderServiceTFCard

    53130

    Android Junit-声明套件类

    不知道大家日常开发会不会写用例,也是我们常说的小型,我们通常会为一些可的模块或类独写一个类,如果我们类比较多的话我们就可能会声明一个套件类来统一运行多个类,本文就简说一下如何来定义和声明套件类 (用于指定套件运行的类)下面是我们声明小型套件类的实践: 声明小型接口** * 用例归属的策略,Small表示小粒度、原子粒度的用例。 一个用例只验证一个原子的功能,如util类方法或者dao层的方法. * * @author devilwwj *public interface Small {}创建类@Category(Small.class 声明runner** * 套件类. * * @author devilwwj * @since 2017726 *@RunWith(Categories.class)@Categories.IncludeCategory ExampleUnitTest.class, ExampleUnitTest2.class})public class SmallTestRunner {}以后我们只需要在@Suite.SuiteClasses声明新增的类即可

    17840

    Android Studio下的

    的重要性不用多说,那该如何用Android Studio进行。 一、建好项目,先写一个需要的简方法public class Calculator{ public int add(int a,int b){ return a + b; }}二、创建文件夹 三、为创建运行配置在要的方法处,右击,按如下选项操作:? 注:如果没有create方法,需要在Build Variants中把工件改为:Android Instrumentation Tests在弹出的选项卡中分别找到类和方法,然后提交 ? 打开配置对话框,选择Android Test,进行如下设置:右侧Module选择你的工程名,这里是appTest: Method四、现在就可以进行了,RuntestAdd()可以在控制台看到成功的绿条了

    33940

    Android Studio下JUnit

    新建一个Android工程?可以看见Android Studio已经提供了AndroidTest和Test.2. 新建一个JUnit配置2.1 点击Edit Configurations按钮? 编写用例?4. 运行用例点击配置旁边的运行按钮?5. 运行结果?结果显示,失败。现在修改代码, 2+2是否等于4.?ok, 分享完毕。

    55911

    Gradle For Android(6)--

    Android Studio和Gradle Android Plugin可以为提供支持,但是需要我们可以配置一些东西。JUnitJUnit是一个常用的Lib。 它可以让写出来的很容易的理解。值得注意的是,这些特殊的只对业务逻辑有用,而与Android SDK相关的则不会生效。 Run Tool Window如果你想部分引用了Android特殊的类和资源的代码的话,那么普通的则不能使用。 不同的是,我们写的可以使用Android的类和资源。 这也就是和功能之间的区别。

    51740

    7.Android-压力、日志猫使用

    1.压力monkey通过cmd输入下面命令:adb shell monkey -p com.example.phonecall --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000 > F:monkey_logtest1.txt表示com.example.phonecall应用程序,随机发送点击滑动切换事件 2.2.1 定义一个要被的类MyMath?2.2 然后再来定义一个MyMathTest类?2.3 然后在MyMathTest类里来写方法,并来MyMath类? : 在application素里添加: 如下图所示:? 2.6 再次Run As运行如下图所示,显示Success则成功了:?3.日志猫LogCat使用日志猫显示标签选项有下面几个:?

    21520

    win10 UWP WPF 异步

    我们在写代码的时候不能保证我们写出来的代码是正确的,所以我们经常要和重构都是在做完一个小小函数一般就要进行一次,越早做就越好,可以比较早发现问题,这时我们还记得我们写的内容,不过比重构好的是,重构我们经常不知道要叫什么名字,而反而就比较简。 C#->Windows->通用->应用 ?命名我是叫 在新建右击引用 ?把工程引用?打开项目一般哪个类我就会新建一个类名称和要类相同,类里面函数和要函数名相同。 我在做一个windows Markdown,里面有函数把剪贴的文本覆盖Textbox选文本,我不知道这个函数写的是不是对,于是我就在,新建一个类函数所在的类是winmain,所以在新建一个类 AreNotEqual 两个值不相等 AreNotSame 两个值不相同 AreSame 两个值相同 WPF 对于 WPF 的,可以新建一个控制台项目,然后右击引用?

    37620

    Android开发之逻辑

    的必要性完整,规范的有利于提升程序的“自动化”验证降低后期程序的维护成本高覆盖率的在很大程度上能提前发现一些潜在的bug编写的过程中可以帮助程序模块化重构,一个耦合性非常高的程序是无法针对他编写完善的的 的实现直接耦合到connectImpl方法中,那么connectImpl的代码除了连接tcp的逻辑外还有创建InetSocketAddress的逻辑,这样就比较混乱,而且方法体也变长Android的分类纯代码逻辑的 类的地方都会直接崩溃,这时候需要把这些类或者方法mock掉,返回我们指定的值,Java的重点是Java代码的逻辑,具体的android相关的是不关注的,可以通过androidandroid 的相关代码每一个方法都要写详细的注释,减少后面其他人来维护这个的成本用户针对类去写,一个类:className对应一个用例类:TestclassName,而且包名是一样的 ,可能会大大降低jinkens的编译速度,因为理论上一个方法的执行时间都是ms级别的,针对这种问题,考虑放到androidTest下去,不要在逻辑中做Android,在androidTest

    30910

    扫码关注云+社区

    领取腾讯云代金券