使用:
1、添加依赖
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.3'
2、添加测试代码,例如:
@RunWith(AndroidJUnit4.class)
public class MainActivityTest {
@Rule
public ActivityTestRule<MainActivity> activityTestRule =
new ActivityTestRule<>(MainActivity.class);
private Solo solo;
@Before
public void setUp() throws Exception{
// 获取activity
solo = new Solo(InstrumentationRegistry.getInstrumentation(),activityTestRule.getActivity());
}
@After
public void tearDown() throws Exception {
solo.finishOpenedActivities(); // 关闭打开的活动
}
@Test
public void testAddNote() throws Exception {
solo.clickOnView(solo.getView(R.id.test)); // 点击view
}
}
robotium框架是通过模拟用户操作手机屏幕来进行测试,几个基本操作:
- 要知道操作控件的坐标
- 对控件进行模拟操作
- 判断操作的结果是否符合预期
控件的获取
1、通过id获取
solo.getView(R.id.test);
2、通过索引、文本获取
solo.getText(0); // 第一个Textview控件
solo.getText("hello"); // 包含"hello"文字的textView控件(文字部分匹配即可)
3、通过对控件类型进行过滤获取
// 比如:一个LinearLayout中子控件都是动态添加的,就可以用这种方式获取
LinearLayout parentView = (LinearLayout) solo.getView(R.id.test);
ArrayList<TextView> textViews = solo.getCurrentViews(TextView.class, parentView);
textViews.get(0);
// getCurrentViews()方法有4个重载方法,可以指定过滤条件
控件的操作
1、点击、长按操作
clickOnView(View view) / clickLongOnView(View view)
clickOnScreen(float x,float y) / clickLongOnScreen(float x,float y)
</