【Android】robolectric测试实践
来源:互联网 发布:vb小游戏 编辑:程序博客网 时间:2024/06/03 21:28
0.开发环境:androidStudio3.0
1.build.gradle配置
android { compileSdkVersion 26 defaultConfig { applicationId "com.naton.materialdemo" minSdkVersion 15 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } testOptions { unitTests { includeAndroidResources = true } }}dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support:design:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' testCompile "org.robolectric:robolectric:3.5.1"}
2.创建自定义CustomRobolectricTestRunner
public class CustomRobolectricTestRunner extends RobolectricTestRunner { public CustomRobolectricTestRunner(Class<?> testClass) throws InitializationError { super(testClass); RoboSettings.setMavenRepositoryId("alimaven"); RoboSettings.setMavenRepositoryUrl("http://maven.aliyun.com/nexus/content/groups/public/"); }}
3.页面测试
package com.naton.materialdemo.robolectric;import android.content.Intent;import android.widget.Button;import com.naton.materialdemo.AutoCompleteTextViewActivity;import com.naton.materialdemo.BuildConfig;import com.naton.materialdemo.MainActivity;import com.naton.materialdemo.R;import org.junit.Ignore;import org.junit.Test;import org.junit.runner.RunWith;import org.robolectric.Robolectric;import org.robolectric.annotation.Config;import org.robolectric.shadows.ShadowApplication;import static org.junit.Assert.assertEquals;/** * <p> * CopyRright (c)2017: * <p> * Project: * <p> * Comments: ${todo}(用一句话描述该文件做什么) * <p> * NameSpace: ${package_name} ${file_name} * <p> * Author: * <p> * Create Date: 2017/11/3 * <p> * Modified By: <修改人中文名或拼音缩写> * <p> * Modified Date: <修改日期> * <p> * Why & What is modified: <修改原因描述> * <p> * Version: v1.0 */@RunWith(CustomRobolectricTestRunner.class)@Config(constants = BuildConfig.class)public class SampleActivityTest { @Test public void TextTest() throws Exception { System.out.println("test"); } @Test public void onclickTest(){ MainActivity activity = Robolectric.setupActivity(MainActivity.class); activity.findViewById(R.id.autoCompleteTextView).performClick(); Intent expectedIntent = new Intent(activity, AutoCompleteTextViewActivity.class); Intent actual = ShadowApplication.getInstance().getNextStartedActivity(); assertEquals(expectedIntent.getComponent(), actual.getComponent()); } @Test public void ButtonTextTest() throws Exception { MainActivity activity = Robolectric.setupActivity(MainActivity.class); Button autoCompleteTextView = (Button) activity.findViewById(R.id.autoCompleteTextView); Button results = (Button) activity.findViewById(R.id.results); assertEquals(results.getText().toString(),"Robolectric Rocks!"); } @Test public void ButtonTextErrorTest() throws Exception { MainActivity activity = Robolectric.setupActivity(MainActivity.class); Button autoCompleteTextView = (Button) activity.findViewById(R.id.autoCompleteTextView); Button results = (Button) activity.findViewById(R.id.results); assertEquals(results.getText().toString(),"Robolectric R!"); }}
知行办公,专业移动办公平台 https://zx.naton.cn/原创团队【总监】十二春秋之,3483099@qq.com;【Master】zelo,616701261@qq.com;【运营】运维艄公,897221533@qq.com;【产品设计】流浪猫,364994559@qq.com;【体验设计】兜兜,2435632247@qq.com;【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;【java】首席工程师MR_W,feixue300@qq.com;【测试】土镜问道,847071279@qq.com;【数据】fox009521,42151960@qq.com;【安全】保密,你懂的。
阅读全文
0 0
- 【Android】robolectric测试实践
- Android Robolectric 测试框架探究
- Android测试框架之Robolectric
- Android Studio Robolectric测试环境配置
- Robolectric 测试你的Android代码
- 使用Robolectric对android程序实现自动化测试
- Android 系列 3.5使用Robolectric和JUnit测试4
- Robolectric测试框架使用文档
- Robolectric
- Android stuido 集成 Robolectric 单元测试
- 使用Robolectric进行Android单元测试
- 使用Robolectric做Android单元测试
- Android中Robolectric的使用
- Android测试QQ群讨论交流内容-自动化测试Case粒度、Case耦合性、robotium和robolectric看法
- Robolectric测试环境移除stetho
- Robolectric: Test-Drive Your Android Code
- Android中单元测试 Robolectric + MVP模式
- Robolectric Test-Drive Your Android Code
- ArcGIS使用GGA语句计算地块面积
- Android项目启动白屏/黑屏问题处理
- 参考文章
- java(14):数据结构(1)--Collection
- w7 安装git 和简单的提交
- 【Android】robolectric测试实践
- failed to initialize unity graphics 错误解决方法(win7 unity5)
- 基于HanLP分词的命名实体提取
- Git命令参考手册
- OkHttp3 配置Https证书请求
- 正则表达式的特殊字符
- Python实现SocketServer(一)
- 软件工程各阶段的评审内容
- 面试题: 看下面的程序是否有问题 如果有问题请指出 并说明 (关于数据类型-隐性转换的小陷阱)