前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

记录一些Robolectric比较常用的方法

既然前面介绍了Android的测试工具Robolectric,那今天就介绍一些比较常用的方法。

最常用的就是获取activity的方法,Robolectric提供了很多获取activity的方式,具体要采用哪一种,看具体的测试情况,这边介绍三种方式:

第一种:

MainActivity activity = Robolectric.setupActivity(MainActivity.class);

直接获取activity,不过最新版本的Robolectric中,这个方法好像已经过时了,被第二种取代了。使用方式略有不同,不过都比较简单。

第二种:

ActivityScenario scenario = ActivityScenario.launch(MainActivity.class);        scenario.onActivity(activity -> {            // 在这里就可以使用SDK的接口了            EditText editText = activity.findViewById(R.id.edit_text);        })

这种方式要使用activity,需要通过onActivity()方法,将具体的测试脚本直接传进去,可能刚开始会有点不习惯,不过可以去复习一遍lambda表达式,理解起来就会容易很多。

第三种:

ActivityController<MainActivity> activityController = Robolectric.buildActivity(MainActivity.class);MainActivity mainActivity = activityController.get();

这种方式获取的是一个ActivityController对象,要获取对应的activity的话,可以直接使用get()方法。

通过上面任意一种方式,都能获取到activity。软件测试工程师经常被调侃为点点点、点工,下面我们介绍最重要的方法,元素点击操作:

RadioButton womanButton = mainActivity.findViewById(R.id.sex_woman);womanButton.performClick();

任何找到的控件,都可以通过performClick()方法进行点击操作。

有时候我们需要获取activity或者fragment的生命状态,可以用这个方法:

mainActivity.getLifecygetCurrentStatecle().()

然后就是常见的Toast工具的提示,只要是进行了提示,都可以通过这个方法获取到提示的时长和内容:

Button button = mainActivity.findViewById(R.id.button_edit);button.performClick();String toastText = ShadowToast.getTextOfLatestToast();int duration = ShadowToast.getLatestToast().getDuration();

后面是AlertDialog的获取:

AlertDialog latestAlertDialog = ShadowAlertDialog.getLatestAlertDialog();

不过这个latestAlertDialog由于我的版本问题,无法获取到对应的文本内容,你们如果有正确的使用姿势,可以发文档连接或者直接发代码给我看看。

先介绍到这吧,以后用到其他了再补充。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言