您的位置:首页 > 其它

雾山的Robotium学习笔记---环境搭建及入门示例

2014-07-04 15:01 501 查看
环境搭建(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包放在哪个目录里,会自动添加到build path里去,只有就能正确引用到了。)

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 plaincopyprint?





package com.tangbc.tbutton.test;

import org.junit.Test;
import android.test.ActivityInstrumentationTestCase2;
import com.robotium.solo.Solo;
import com.tangbc.tbutton.MainActivity;

public class TButtonTest extends ActivityInstrumentationTestCase2{
private Solo solo;

public TButtonTest() {
super(MainActivity.class);
}

@Override
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(),getActivity());
}

@Override
protected void tearDown() throws Exception {
solo.finishOpenedActivities();
}

@Test
public void test() {
//solo.clickOnMenuItem("Settings");
for (int i = 0; i < 10; i ++){
solo.clickOnButton("原始数据");
}
solo.clickOnButton("跳转");
solo.goBack();
solo.clickOnButton("原始数据");
}

}

package com.tangbc.tbutton.test;

import org.junit.Test;
import android.test.ActivityInstrumentationTestCase2;
import com.robotium.solo.Solo;
import com.tangbc.tbutton.MainActivity;

public class TButtonTest  extends ActivityInstrumentationTestCase2{
private Solo solo;

public TButtonTest() {
super(MainActivity.class);
}

@Override
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(),getActivity());
}

@Override
protected void tearDown() throws Exception {
solo.finishOpenedActivities();
}

@Test
public void test() {
//solo.clickOnMenuItem("Settings");
for (int i = 0; i < 10; i ++){
solo.clickOnButton("原始数据");
}
solo.clickOnButton("跳转");
solo.goBack();
solo.clickOnButton("原始数据");
}

}


被测工程源码:

主页面:

[java]
view plaincopyprint?





package com.tangbc.tbutton;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
private Button button;
private TextView textView;
private static int i = 0;
private Button skipButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button = (Button)findViewById(R.id.button);
textView = (TextView)findViewById(R.id.textView);
button.setOnClickListener(new ButtonListener());

skipButton = (Button)findViewById(R.id.skipbutton);
skipButton.setOnClickListener(new SkipButtonListener());

}

class ButtonListener implements OnClickListener{

@Override
public void onClick(View v) {
i++;
System.out.println(i);
textView.setText(String.valueOf(i));

}
}

class SkipButtonListener implements OnClickListener{

@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, SceondAcitvity.class);
startActivity(intent);
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

package com.tangbc.tbutton;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
private Button button;
private TextView textView;
private static int i = 0;
private Button skipButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button = (Button)findViewById(R.id.button);
textView = (TextView)findViewById(R.id.textView);
button.setOnClickListener(new ButtonListener());

skipButton = (Button)findViewById(R.id.skipbutton);
skipButton.setOnClickListener(new SkipButtonListener());

}

class ButtonListener implements OnClickListener{

@Override
public void onClick(View v) {
i++;
System.out.println(i);
textView.setText(String.valueOf(i));

}
}

class SkipButtonListener implements OnClickListener{

@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, SceondAcitvity.class);
startActivity(intent);
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}


副页面:

[java]
view plaincopyprint?





package com.tangbc.tbutton; import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class SceondAcitvity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); Intent intent = getIntent(); } }
package com.tangbc.tbutton;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class SceondAcitvity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);

Intent intent = getIntent();
}

}


本文参考:http://www.robotium.cn/archives/210
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: