实现的就是创建一个Activity,一行代码即可模仿activity的创建与运行。一行代码就解决了一向困扰我们对于android情况无法获取的忧?。有了Activity对象,刹时认为可以解决所有问题。例如测试页面的跳转:
- @Testpublic voidtestToHelpCenter(){
- view.toHelpCenter();
- //设置等待IntentIntent expectedIntent =newIntent(activity,WeatherHelpCenterActivity.class);//获取实际IntentIntent actualIntent = ShadowApplication.getInstance().getNextStartedActivity();//经由过程Assert验证Assert.assertEquals(expectedIntent.getComponent(),actualIntent.getComponent());
- }
设置好当前页面与跳转页面,Robolectric就可以或许赞助我们模仿出我们所等待的Intent,同时经由过程ShadowApplicaiton可以获取到模仿运行后的实际Intent的值,结合Junit即可完查对Intent的验证,进而验证页面跳转逻辑。
在实际开辟过程中,办事端平日会对同一接口的不合状况做成不合的办事应答码,固然返回异常态应答码的时刻收集请求也是成功,但它倒是有别于常态办事端应答的另一种情况。所以,这里须要对异常态办事应答码进行一个前提分支的测试。testStatusError ()的测试办法与testRequestSuccess()类似,只是我们此次的status模仿值由成功的status换成了一个异常status,同时,验证的函数履行也变成了listener的掉败办法
TextView是我们在开辟过程中最常用也是最轻易掉足的一个UI组件,尤其是团队的设计师是一个异常把不合处所的案牍设计得异常想象而又有着细微差其余时刻,我们异常轻易多打或是少打一钢髦棘又或是错别或是形近字。为了包管产品德量,我们不得不一遍又一遍的比对UI稿件,锱铢必较,逐字不雅察,的确苦不堪言。所谓法度榜样即生活,难道我们生活中就没有这种校验文字的困扰么?生活中我们又都是怎么解决的呢?记得很多年前时不时会看到有人去ATM转账转错的消息,本年往来交往是很少有如许的消息了,原因就在于银行对于银行卡号作了二次校验。对于TextView的测试也是应用了二次校验的办法,第一次文字应用营业代码,第二次代码应用测试代码进行校验,如不雅两次不一致则证实文字存在问题。如许就可以有效的避免了靠肉眼比对的不肯定性,让法度榜样去验证法度榜样。
- @Testpublic voidtestShowTemperature(){
- //模仿视图数据WeatherViewData viewData =newWeatherViewData();
- viewData.setTemperature(23.1D);
- view.updateCache(viewData);
- //履行待测函数view.showTemperature();//经由过程Id获得view实体TextView tvTemperature = (TextView)activity.findViewById(R.id.tvTemperature);
- String text = tvTemperature.getText().toString();
- //验证文字显示assertEquals("验证温度",text,"23.1");
- }
起首经由过程view.showTemperature();调用履行函数,在经由过程Id找到对应的TextView组件,经由过程getText获取TextView的显示文字,再经由过程Junit的aseertEquals进行字符串验证即可。如不雅产生比对掉败,经由过程下方的Log提示click to see difference即可精确的看履新别点。
- @Testpublic voidtestShowDataError(){
- view.showDataError();
- assertEquals("数据转换异常",ShadowToast.getTextOfLatestToast());
- }
测试Resource中的色彩:
- @Testpublic voidtestInitTitle(){
- TextView tvTitle = (TextView)activity.findViewById(R.id.tvTitle);
- view.initTitle();
推荐阅读
前几天收到了一名网友的乞助,表示他无法正常上彀,并且当他在查找断网原因刹那,竟然发明默认的网关地址也消掉了。面对这种情况,他表示不知该若何处理。实际上,出现默认网关空白的情况有下面几个原因。起首,可能>>>详细阅读
本文标题:安卓单元测试全攻略,让代码测试一劳永逸
地址:http://www.17bianji.com/lsqh/36696.html
1/2 1