博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Robolectric使用
阅读量:6823 次
发布时间:2019-06-26

本文共 2041 字,大约阅读时间需要 6 分钟。

  1. 在src中有三个包,分别是:test、androidTest 和java

    test:是测试不涉及Activity,UI组件的纯Java方法。
    直接在电脑上直接测试。
    androidTest:涉及UI,Android组件的都在该路径下测试。
    需要连接真机,或者模拟器进行测试。
    java:项目代码

  2. 在moudle中的build.gradle文件下依赖

testCompile "org.robolectric:robolectric:3.6.1"
  1. 主界面xml布局
  1. MainActivity.java代码(项目中使用了ButterKnife框架)
public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.inject(this);    }    @OnClick(R.id.btn_login)    public void login(){        Log.e(TAG, "login: 登录");        Toast.makeText(this, "登录", Toast.LENGTH_SHORT).show();    }    @OnClick(R.id.btn_open)    public void open(){        Intent intent = new Intent(MainActivity.this, LoginActivity.class);        startActivity(intent);    }}
  1. test包下的测试MainActivityTest类
/** * @author mazaiting * @date 2017/12/26 */@RunWith(RobolectricTestRunner.class)@Config(constants = BuildConfig.class, sdk = 21)public class MainActivityTest {    @Before    public void before(){        Logger.error("start");    }    @Test    public void clickLoginBtn(){        MainActivity activity = Robolectric.setupActivity(MainActivity.class);        activity.findViewById(R.id.btn_login).performClick();        Logger.error(ShadowToast.getTextOfLatestToast());    }    @Test    public void clickOpenBtn(){        MainActivity activity = Robolectric.setupActivity(MainActivity.class);        activity.findViewById(R.id.btn_open).performClick();        Intent expectedIntent = new Intent(activity, LoginActivity.class);        Intent actual = ShadowApplication.getInstance().getNextStartedActivity();        Logger.debug(expectedIntent.getComponent().toString());        Logger.debug(actual.getComponent().toString());        Assert.assertEquals(expectedIntent.getComponent(), actual.getComponent());    }    @After    public void after(){        Logger.error("after");    }}
  1. 更多使用请查看

转载地址:http://gblzl.baihongyu.com/

你可能感兴趣的文章
Ubuntu 下的常用 apt 命令
查看>>
<Programming Ruby 1.9 The Pragmatic Programmer>读书笔记
查看>>
log4j:WARN No appenders could be found for logger (...)解决办法
查看>>
研发部阶段性工作汇总
查看>>
10.28T4 二分
查看>>
ASP.NET中url传递中文的解决方案
查看>>
js6
查看>>
[PLC]ST语言四:INV_MEP_MEF_PLS_PLF_MC_MCR
查看>>
[Docker]Harbor部署私有镜像仓库
查看>>
漂亮!Javascript代码模仿淘宝宝贝搜索结果的分页显示效果
查看>>
为现代JavaScript开发做好准备
查看>>
mstsc的事 随笔
查看>>
初学seaJs模块化开发,利用grunt打包,减少http请求
查看>>
CentOS 7加强安全性:
查看>>
8086PC读取和执行指令相关部件
查看>>
下拉列表项的配置方式...
查看>>
Tools - 使用Doxygen和Graphviz分析代码
查看>>
Linux - 针对用户账号的常用操作
查看>>
sqlserver 存储过程
查看>>
shell函数使用
查看>>