单元测试Robolectric的使用详解

本文详细介绍了如何使用Robolectric进行单元测试,重点在于它如何模拟Android环境,尤其适用于UI测试,如Activity和Fragment。通过Shadow类模拟Android组件行为,结合JUnit,Robolectric弥补了Mockito在Android单元测试中的不足。文中通过具体的代码示例展示了如何设置和执行测试,包括对Activity和生命周期的控制。
摘要由CSDN通过智能技术生成

Robolectric通过实现一套JVM能运行的Android代码,然后在Junit test运行的时候去截取android相关的代码调用,然后转到他们的他们实现的代码去执行这个调用的过程。不用依赖真实的 Android 环境中运行(模拟器或者真机)

Robolectric主要适用于UI的测试,比如Activity,Fragment,一些页面操作的测试场景,采用Shadow的方式对Android中的组件进行模拟测试,从而实现Android单元测试Robolectric正好弥补了Mockito的不足,两者结合使用是最完美的。

现在我们就开启Robolectric的测试之旅吧!

需要测试的类:

public class QXUnitTestActvity extends MSBaseActivity {
@BindView(R.id.btn_changge) Button mbtn;
@BindView(R.id.textView) TextView mTv;
public String name;
private QxBroacastReceiver receiver;
private Handler mHandler;
public int mCount=0;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_unit_test);
    ButterKnife.bind(this);
    name="create";
    registerBroacast();
    mHandler=new Handler(getMainLooper());

}

private void registerBroacast() {
    IntentFilter filter=new IntentFilter();
    filter.addAction("com.wr.qx.ok");
   receiver= new QxBroacastReceiver();
    registerReceiver(receiver,filter);
}

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@OnClick(R.id.btn_changge) void changeText(){
    mTv.setText("我被修改了");
    if(name.equals("jump")){
        startActivity(new Intent(this,MSCurrentInvestActivity.class));
    }

    mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            mCount=6;
        }
    },500);

    Toast.makeText(this,"hello",Toast.LENGTH_LONG).show();

    Dialog dialog=new Dialog(this);
    TextView tv=new TextView(this);
    tv.setText("我是一个dialog");
    dialog.setContentView(tv);
    dialog.show();
    dialog.setCancelable(true);

    final AlertDialog alertDialog=new AlertDialog.Builder(this)
            .setIcon(getDrawable(R.mipmap.ic_launcher))
            .setMessage("hello")
            .setNegativeButton("OK", new DialogInterface.OnClickListener() {
                @Overr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值