“有什么不方便的,喻某我老了,要是像你这么年轻的话,碰到这种好事,高兴还来不及呢,你难道连这个意思都看不懂?”喻站长也有些着急了。

岩石巨人轰然倒塌,就在这个时候,那岩石巨人的头部整个都炸碎开来,异能包裹着碎石像是流星一般砸向了羽飞尘。

网络小说校对兼职

这时,韦家得到一个消息,户部右侍郎崔翘中午时分拜访了杨钊,杨钊家开大门迎接崔翘到来,这意味着崔杨已经公开结盟了。
纪太虚坐在自家亭子中,手中拿着从皇城司来的文书狠狠的说道:“为??要牛羊之事都口舌了四天了,最终不还是没吵出个结果来?这些人,真是的,能办出个什么事儿来?张宣也是早不生病,晚不生病,偏偏这个时候生病,哼!恐怕此刻各个方面的大臣都急着要进他家的大门吧!”

“呵呵,你们的吗?想要的话那就快点给我提升到斗尊的实力,不然的话一件都没有。”刘皓“威胁”道。

Android测试:Testing Apps on Android


原文:https://developer.android.com/training/testing/index.html

测试你的App是开发过程中的重要组成部分。通过对应用程序持续的运行测试,你可以验证程序的正确性、功能和可用在发布之前。

测试还提供了以下优点:

  • 快速反馈失败。
  • 开发周期的早期问题检测。
  • 安全地重构代码,让你优化代码而不用担心回归。
  • 稳定开发速度,帮助你减少技术债务。

这里的特指测试通过代码实现的“单元”测试。所以,它可以更早、更快的帮我们发现问题,使我们的代码重构更有信心;单元测试虽然前期编写会比较耗时,但是它可以有效的代码的质量,不会导致项目后期代码充满坏味道,严重拖慢开发进度;所以,减少你技术债务。

### 资源

在Android测试库、Android平台和开源社区都提供了帮助你编写Android应用测试的工具:

Espesso

Espresso是android应用开发自带测试库。他是一款白盒风格的UI测试工具。UI测试就都是黑盒的么?为什么会是白盒风格。

说白盒是因为,通过Espresso编写测试调用Android控件的方式和 Android开发中是一样的。
来看一段Android开发中,Activity中编写的代码。

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    // Do something in response to button
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}

通过 R.id.edit_message 调用布局文件中输入框中的内容,并转交到另外一个Activity处理。

再来看一段 Espesso 的测试代码:

@Test
public void InputEditCase() throws InterruptedException{

    onView(withId(R.id.edit_message)).perform(typeText(STRING_TO_BE_TYPED));
    onView(withId(R.id.send_button)).perform(click());

    onView(withId(R.id.display_message)).check(matches(isDisplayed()));
    onView(withId(R.id.display_message)).check(matches(withText("hello," +STRING_TO_BE_TYPED)));
}

同样使用的是 R.id.edit_message 的定位方式来查找控件,是不是白盒?我们通常的黑盒UI自动化测试是通过UI属性查看工具(如:UIAutomatorViewer)确定元素的属性来进行定位的。Espesso不需要,你看代码就好了,准确点是看Android的布局文件的控件定义。

但是,Espesso的运行是基于 SDK 的,所以,要想运行一条用例必须在Android模拟器(或真机)上安装App,启动App,然后基于UI的操作来运行测试用例。

#### Robolectric

Robolectric是一款第三方的开源的Android单元测试框架。运行在JVM上,所以它运行速度上会比 Espesso快上很多。

@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {

    @Test
    public void clickingButton_shouldChangeResultsViewText() throws Exception {
        MyActivity activity = Robolectric.setupActivity(MyActivity.class);

        Button button = (Button) activity.findViewById(R.id.button);
        TextView results = (TextView) activity.findViewById(R.id.results);

        button.performClick();
        assertThat(results.getText().toString()).isEqualTo("Robolectric Rocks!");
    }
}

来一段官方Demo,robolectric的做法是通过实现一套JVM能运行的Android代码,然后在单元测试运行的时候去截取android相关的代码调用,然后转到他们的他们实现的代码去执行这个调用的过程。

你不明白原理也没关系,反正知道Robolectric的运行不需要你真正的打开App去执行测试,就像运行一段普通的Java代码一样。所以速度上当然就很快了。

#### AndroidJUnitRunner

AndroidJUnitRunner本质上不算是个测试工具,它只是Google基于Junit针对Anroid封装的一个测试用例运行器而已。至于它用来运行Espesso还是Uiautomator的用例都是可以的。那Robolectric呢?没看到上面的例子中Robolectric有自己的运行器叫RobolectricTestRunner

@RunWith(AndroidJUnit4.class)
public class MainActiveTest{
 
   ……

}

如果看到测试类是用 AndroidJUnit4 注释的,说明用的就是AndroidJUnitRunner运行器的。

#### 测试应用

最后,更好的编写测试用例的平台,当然是Google家的亲儿子了。器大活好不粘人!(现在才发现不是去幼儿园的车,晚了,把车门给我捍死,一个都不准下车。)

Android Studio 以简化测试为设计宗旨。 您只需完成几次点击,便可建立一个在本地 JVM 上运行的 JUnit 测试,或建立一个在设备上运行的仪器测试。

当然,您也可以通过集成测试框架来扩展测试能力,例如可以集成 Mockito 在本地单元测试中测试 Android API 调用,以及集成 Espresso 或 UI Automator 在仪器测试中演练用户交互。
您可以利用 Espresso 测试记录器自动生成 Espresso 测试。

当前文章:http://hnhdqp.com/news/20181086227.html

发布时间:2018-12-15 01:04:45

is网上兼职是真的吗 杭州朝晖星巴克兼职 58同城兼职网日结 想做服装生意 网赚网盘推广 楚留香手游赚rmb 聚享游和快乐赚骗局 qq餐厅外挂怎样赚经验

编辑:建王

相关新闻

世界七大奇迹竟有两处是埃及人建造!

2018-12-15 17:05:55

黑河浩险电子科技有限公司

子洲县驼耳巷乡加大教育投入改善办学条件

2018-12-15 18:50:21

天津痹跃滴建筑材料集团有限公司

6款家常佐酒菜

2018-12-15 19:01:03

兴化父欣揪有限公司

榆林大白菜供应充足价格每斤0.3~0.6元

2018-12-15 05:01:32

辽源戮俦培训学校

热门推荐

  • 土耳其在叙军事行动已造成近500人伤亡
  • 安卓恶意软件Skygofree曝光:监控能力前所未有
  • 国考三年来最大规模补录今起报名 九成空缺在基层
  • Maven依赖解析
  • 美国对今日俄罗斯电视台制裁升级 曾指控其干涉美大选
  • 为重振《魔兽世界》PVP雄风,设计师打算这么干
  • 11月起12306可用微信支付,支付宝已接入4年
  • 2016平均工资出炉:15省份非私营单位月工资超5000元
  • 美英指责中俄否决涉叙利亚决议 中方代表强硬回手
  • 媒体评上海亿元历史修建遭拆建:革新法式存灰色地带
  • 河北新闻网版权所有 本站点信息未经允许不得复制或镜像 法律顾问:淘宝偏门暴利项目 做任务赚钱软件
  • 可靠的网络兼职网站 copyright ? 2000 - 2016
  • 新闻热线:0311-67563366 广告热线:0311-67562966 新闻投诉:0311-67562994
  • 冀ICP备 09047539号-1 | 互联网新闻信息服务许可证编号:1312006002
  • 广播电视节目制作经营许可证(冀)字第101号|信息网络传播视听节目许可证0311618号
  • 网上可以做哪些赚钱 看头条怎么赚钱 问道手游怎么赚钱 快手挣钱怎么算的