b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

java异步调用框架 Android单元测试研究与实践(4)

电脑杂谈  发布时间:2018-02-12 11:25:24  来源:网络整理

}

Fragment展示与切换

Fragment是Activity的一部分,在Robolectric模拟执行Activity过程中,如果触发了被测试的代码中的Fragment添加逻辑,Fragment会被添加到Activity中。

需要注意Fragment出现的时机,如果目标Activity中的Fragment的添加是执行在onResume阶段,在Activity被Robolectric执行resume()阶段前,该Activity中并不会出现该Fragment。java异步调用框架采用Robolectric主动添加Fragment的方法如下:

<ahref="http://www.jobbole.com/members/madao">@Test</a>

publicvoidaddfragment(Activity activity,intfragmentContent){

FragmentTestUtil.startFragment(activity.getSupportFragmentManager().findFragmentById(fragmentContent));

Fragment fragment=activity.getSupportFragmentManager().findFragmentById(fragmentContent);

assertNotNull(fragment);

}

startFragment()函数的主体便是常用的添加fragment的代码。切换一个Fragment往往由Activity中的代码逻辑完成,需要Activity的引用。

控件的点击以及可视验证

<ahref="http://www.jobbole.com/members/madao">@Test</a>

publicvoidtestButtonClick(intbuttonID){

Button submitButton=(Button)activity.findViewById(buttonID);

assertTrue(submitButton.isEnabled());

submitButton.performClick();

//验证控件的行为

}

对控件的点击验证是调用performClick(),然后断言验证其行为。对于ListView这类涉及到Adapter的控件的点击验证,写法如下:

//listView被展示之后

listView.performItemClick(listView.getAdapter().getView(position,null,null),0,0);

与button等控件稍有不同。

Dialog和Toast测试

测试Dialog和Toast的方法如下:

publicvoidtestDialog(){

Dialog dialog=ShadowDialog.getLatestDialog();

assertNotNull(dialog);

}

publicvoidtestToast(StringtoastContent){

ShadowHandler.idleMainLooper();

assertEquals(toastContent,ShadowToast.getTextOfLatestToast());

}

上述函数均需要在Dialog或Toast产生之后执行,能够测试Dialog和Toast是否弹出。

Shadow写法介绍

Robolectric的本质是在Java运行环境下,采用Shadow的方式对Android中的组件进行模拟测试,从而实现Android单元测试。对于一些Robolectirc暂不支持的组件,可以采用自定义Shadow的方式扩展Robolectric的功能。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-73452-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...