一,创建一个Android工程,用于后面的各种自动化测试
这里我们创建一个简单的计算器,用户可以输入两个数字,点击按钮相乘得到结果。
应用界面如下:
在MainActivity中添加如下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText ed1 = (EditText)findViewById(R.id.editText1);
final EditText ed2 = (EditText)findViewById(R.id.editText2);
final TextView mTVResult = (TextView)findViewById(R.id.textView5);
Button btnMultiply = (Button)findViewById(R.id.button1);
btnMultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String str1 = ed1.getText().toString();
String str2 = ed2.getText().toString();
if (TextUtils.isEmpty(str1) || TextUtils.isEmpty(str2)) {
Toast.makeText(getApplicationContext(), "Please input two numbers", Toast.LENGTH_SHORT).show();
return;
}
int number1 = Integer.parseInt(str1);
int number2 = Integer.parseInt(str2);
int nResult = multiply(number1, number2);
mTVResult.setText(String.valueOf(nResult));
}
});
}
public int multiply(int a, int b) {
return CalculatorUtils.multiply(a, b);
}
其中CalculatorUtils中有一个静态方法,
public static int multiply(int a, int b) {
return a * b;
}
二,创建一个java工程,对上面的Android工程作Unit test
1,创建java工程RoboletricDemo1
2,选择Next, 选中Project tab,添加依赖工程AndroidCalculator
3,选择Libraries tab, 点击Add Library...,选择JUnit4
4,选择外部libraries,添加android.jar, roboletric.jar 和其它需要的jar包
5,添加一个Class, Demo1,
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
import android.app.Activity;
import android.widget.Button;
import com.jeff.androidcaculator.R;
import com.jeff.androidcalculator.CalculatorUtils;
import com.jeff.androidcalculator.MainActivity;
@Config(emulateSdk = 1)
@RunWith(RobolectricTestRunner.class)
public class Demo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
@Test
public void testResource() {
Activity activity = Robolectric.buildActivity(MainActivity.class).create().start().resume().visible().get();
Assert.assertNotNull(activity);
ShadowActivity shadowActivity = Robolectric.shadowOf(activity);
String hello = ((Button)shadowActivity.findViewById(R.id.button1)).getText().toString();
Assert.assertEquals("Multiply", hello);
Assert.assertEquals("Hello world!", shadowActivity.getResources().getString(R.string.hello_world));
@Test
public void testMethod() {
Assert.assertEquals(2, CalculatorUtils.multiply(1, 2));
}
}
6,右键工程RoboletricDemo1,选择Run As->JUnit Test,检查运行结果为2 Success。