Robotium---环境搭建及入门示例
Robotium是一款基于控件的Android自动化测试框架
环境搭建(window):
安装JDK以及集成Android Sdk的eclipise。
入门:
1,下载Robotium Solo 5.1,点我下载
2,开启eclipse,并导入工程(代码在最下面)
3,创建测试工程
new --- project --- Android Test Project
4,输入测试工程名,然后点击next
5,选择被测工程TButton,并点击finish
6,在测试工程中创建libs文件夹(有的教程是创建lib的文件夹的,这里需要说明一下,如果是比较新的ADT的话,项目根下新建一个libs目录,把jar包放在哪个目录里,会自动添加到buildpath里去,只有就能正确引用到了。)
7,将下载的robotium-solo-5.1.jar文件拷到libs文件夹
8,将测试工程中的AndroidManifest.xml文件修改如下(一般情况下,创建完工程会自动添加的,若没有请自行添加)
9,创建junit test case,选择junit4,并输入类名,点击finish
10,打开新建的测试类,修改继承ActivityInstrumentationTestCase2,并创建该类的构造函数,引用方法setUp()和tearDown()
11,编写完测试用例后,连上设备,右击测试类,选择Android junit Test,此时就会开始执行测试用例了。
Ps:如果运行时,报如下错误
则是因为没有引入juint,查看配置里面是否勾选了junit。
Project --> Properties --> Java Build Path --> Order and Export
测试用例源码:
[java]view plaincopy
- packagecom.tangbc.tbutton.test;
- importorg.junit.Test;
- importandroid.test.ActivityInstrumentationTestCase2;
- importcom.robotium.solo.Solo;
- importcom.tangbc.tbutton.MainActivity;
- publicclassTButtonTestextendsActivityInstrumentationTestCase2{
- privateSolosolo;
- publicTButtonTest(){
- super(MainActivity.class);
- }
- @Override
- protectedvoidsetUp()throwsException{
- solo=newSolo(getInstrumentation(),getActivity());
- }
- @Override
- protectedvoidtearDown()throwsException{
- solo.finishOpenedActivities();
- }
- @Test
- publicvoidtest(){
- //solo.clickOnMenuItem("Settings");
- for(inti=0;i<10;i++){
- solo.clickOnButton("原始数据");
- }
- solo.clickOnButton("跳转");
- solo.goBack();
- solo.clickOnButton("原始数据");
- }
- }
被测工程源码:
主页面:
[java]view plaincopy
- packagecom.tangbc.tbutton;
- importandroid.app.Activity;
- importandroid.content.Intent;
- importandroid.os.Bundle;
- importandroid.view.Menu;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.TextView;
- publicclassMainActivityextendsActivity{
- privateButtonbutton;
- privateTextViewtextView;
- privatestaticinti=0;
- privateButtonskipButton;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- button=(Button)findViewById(R.id.button);
- textView=(TextView)findViewById(R.id.textView);
- button.setOnClickListener(newButtonListener());
- skipButton=(Button)findViewById(R.id.skipbutton);
- skipButton.setOnClickListener(newSkipButtonListener());
- }
- classButtonListenerimplementsOnClickListener{
- @Override
- publicvoidonClick(Viewv){
- i++;
- System.out.println(i);
- textView.setText(String.valueOf(i));
- }
- }
- classSkipButtonListenerimplementsOnClickListener{
- @Override
- publicvoidonClick(Viewv){
- Intentintent=newIntent();
- intent.setClass(MainActivity.this,SceondAcitvity.class);
- startActivity(intent);
- }
- }
- @Override
- publicbooleanonCreateOptionsMenu(Menumenu){
- //Inflatethemenu;thisaddsitemstotheactionbarifitispresent.
- getMenuInflater().inflate(R.menu.main,menu);
- returntrue;
- }
- }
副页面:
[java]view plaincopy
- packagecom.tangbc.tbutton;
- importandroid.app.Activity;
- importandroid.content.Intent;
- importandroid.os.Bundle;
- publicclassSceondAcitvityextendsActivity{
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.second);
- Intentintent=getIntent();
- }
- }
本文参考:http://www.robotium.cn/archives/210
【转:http://blog.csdn.net/tt75281920/article/details/25967351】