Andoid2.1--robotium<1>--NotePadTest
/* * This is an example test project created in Eclipse to test NotePad which is a sample * project located in AndroidSDK/samples/android-11/NotePad * Just click on File --> New --> Project --> Android Project --> Create Project from existing source and * select NotePad. * * Then you can run these test cases either on the emulator or on device. You right click * the test project and select Run As --> Run As Android JUnit Test * * @author Renas Reda, renas.reda@jayway.com * */ package com.example.android.notepad.test; import com.example.android.notepad.NotesList; import com.jayway.android.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.Smoke; public class NotePadTest extends ActivityInstrumentationTestCase2<NotesList>{ private Solo solo; public NotePadTest() { super("com.example.android.notepad", NotesList.class); } public void setUp() throws Exception { solo = new Solo(getInstrumentation(), getActivity()); } @Smoke public void testAddNote() throws Exception { solo.clickOnMenuItem("Add note"); //Assert that NoteEditor activity is opened solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor"); //In text field 0, add Note 1 solo.enterText(0, "Note 1"); //solo.clickOnMenuItem("Save"); solo.goBack(); solo.goBack(); //Clicks on menu item solo.clickOnMenuItem("Add note"); //In text field 0, add Note 2 solo.enterText(0, "Note 2"); //Go back to first activity named "NotesList" //solo.clickOnMenuItem("Save"); solo.goBack(); solo.goBack(); //Clicks on menu item solo.clickOnMenuItem("Add note"); //In text field 0, add Note 3 solo.enterText(0, "Note 3"); solo.goBackToActivity("NotesList"); boolean expected = true; boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2") && solo.searchText("Note 3"); //Assert that Note 1 & Note 2 are found assertEquals("Note 1 and/or Note 2 are not found", expected, actual); } @Smoke public void testEditNote() throws Exception { // Click on the second list line solo.clickInList(3); // Change orientation of activity solo.setActivityOrientation(Solo.LANDSCAPE); // Change title solo.clickOnMenuItem("Edit title"); //In first text field (0), add test solo.enterText(0, " test"); solo.goBack(); boolean expected = true; // (Regexp) case insensitive boolean actual = solo.waitForText("(?i).*?note 1 "); //Assert that Note 1 test is found assertEquals("Note 1 test is not found", expected, actual); } @Smoke public void testRemoveNote() throws Exception { //(Regexp) case insensitive/text that contains "test" solo.clickOnText("(?i).*?test.*"); //Delete Note 1 test solo.clickOnMenuItem("Delete"); //Note 1 test & Note 2 should not be found boolean expected = false; boolean actual = solo.searchText("Note 1 test"); //Assert that Note 1 test is not found assertEquals("Note 1 Test is found", expected, actual); solo.clickLongOnText("Note 2"); //Clicks on Delete in the context menu solo.clickOnText("(?i).*?Delete.*"); actual = solo.searchText("Note 2"); //Assert that Note 2 is not found assertEquals("Note 2 is found", expected, actual); solo.clickLongOnText("Note 3"); //Clicks on Delete in the context menu solo.clickOnText("(?i).*?Delete.*"); actual = solo.searchText("Note 3"); //Assert that Note 2 is not found assertEquals("Note 3 is found", expected, actual); } @Override public void tearDown() throws Exception { //Robotium will finish all the activities that have been opened solo.finishOpenedActivities(); } }
1>solo.clickOnMenuItem("Add note");
//solo.clickOnMenuItem(String text);
//选择Menu按键,从菜单中选择一个选项text
2>solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor");
// assertCurrentActivity(String message, String name)
//假设当前的activity为期望的activity
//参数:message 如果当前的activity不是期望的activity 则输出message
//name 期望的activity
3>solo.enterText(0, "Note 1");
//enterText(int index, String text)
// 根据索引 向编辑文本框中输入内容
//index – EditText的索引, 如果index=0 只有一个可选EditText
//text – 输入内容
4>solo.goBack(); //模拟点击返回键
5>public void goBackToActivity(String name)
//返回到给定的Activity
//参数:name 想返回到的Activity
//boolean expected = true;
6>public boolean searchText(String text)
//在当前activity中查找 text,界面中只要找到一项与text相同的String,return true.
//参数: text期望找到的String
//返回值:找到 return true 找不到 return false
7>assertEquals("Note 1 and/or Note 2 are not found", expected, actual);
// expected 期望结果,actual 实际结果 ;
//如果expected != actual 输出"Note 1 and/or Note 2 are not found"
8> solo.clickInList(2);
//clickInList(int line); 点击列表中的一行(line)
//返回值 ArraryList 返回可编辑的文本界面,并将这一条目移到列表中的第一条
9>solo.setActivityOrientation(Solo.LANDSCAPE);
//setActivityOrientation,设置手机屏幕显示方式
//LANDSCAPE:横向显示
//Portrait:竖向显示
10> solo.clickOnText("(?i).*?test.*");
//点击当前activity中的文本
11>solo.clickLongOnText("Note 2");
//长按activity中的文本