Android自动化测试2-Roboletric

一,创建一个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。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值