TestCase在项目中是很重要,但仍然有很多人不知道怎么去写,今天我将我写的一段Case给大家分享一下。正常我们都会继承AndroidTestCase,我这里继承的ApplicationTestCase. 方法命名最好Test什么方法就在该方法前test
public class InteractiveIssueDataHandlerTest extends ApplicationTestCase<App> { public InteractiveIssueDataHandlerTest() { super(App.class); }//add some parameter if you need. @Override protected void setUp() throws Exception { super.setUp(); createApplication(); SharedPreferences prefs = this.getContext().getSharedPreferences("settings", Context.MODE_PRIVATE); String sInstallationUuid = prefs.getString("installationUuid", null); if (sInstallationUuid == null) { sInstallationUuid = UUID.randomUUID().toString(); Editor editor = prefs.edit(); editor.putString("installationUuid", sInstallationUuid); editor.commit(); } }/** * Tests the parsing of the issue data xml response. * @throws ServiceException */ public void testSingleIssue() throws ServiceException { IssueData issueData = getIssueData(); assertEquals(packageSize, issueData.getPackageSize()); assertTrue(issueData.isAutoStart());assertNotNull(issueData.getHostName()); }/** * return IssueData for other method */ IssueData getIssueData(){ IssueDataHandler handler = new IssueDataHandler(); handleXmlFilePath(handler, ISSUE_DATA_XML_PATH, false); IssueData issueData = handler.getIssueData(); System.out.println("----issueData--" + issueData); return issueData; }
Solo 我用的不多,但是确很方便,给大家一部分代码供参考
/** * A class to test the MoreActivity class. * * @author Georgi * */public class MoreActivityTest extends ZinioActivityTransitionTest<MoreActivity> { private Solo solo; private MoreActivity mMoreActivity; private TextView mLegalNotices; private TextView mSignOut; private TextView mManageTips; private Instrumentation mInstrumentation; /* * Constructor */ public MoreActivityTest() { super(MoreActivity.class); } @Override public void setUp() throws Exception { super.setUp(); try { UserManager.get().logInSync(new Handler(), TestUtil.getExistingUserId(), TestUtil.getExistingUserPassword()); } catch (Exception e) { fail(); } solo = new Solo(getInstrumentation(), getActivity()); mMoreActivity = this.getActivity(); mLegalNotices = (TextView) this.getActivity().findViewById(R.id.more_legal_notices); mSignOut = (TextView) this.getActivity().findViewById(R.id.more_sign_out); mManageTips = (TextView) this.getActivity().findViewById(R.id.more_manage_tips); mInstrumentation = getInstrumentation(); } @Override public void tearDown() throws Exception { super.tearDown(); } /** * Tests whether the 6 exact TextViews on that page are drawn when opening * this Activity */ public void testMenuMembersInitialization() { ModuleRegistry.get(); int[] pageTextViewsIds = new int[] { R.id.more_change_password, R.id.more_faq, R.id.more_legal_notices, R.id.more_manage_tips, R.id.more_sign_out }; List<TextView> textViewsOnPage = findAllViews(pageTextViewsIds, TextView.class); TextView v = (TextView) mMoreActivity.findViewById(R.id.more_change_password); ViewGroup vp = (ViewGroup) v.getParent(); List<TextView> viewsList = new ArrayList<TextView>(); for (int i = 0; i < vp.getChildCount(); i++) { if (vp.getChildAt(i).getClass() == TextView.class) { viewsList.add((TextView) vp.getChildAt(i)); Log.i("added", Integer.toString(i)); } } if (!viewsList.containsAll(textViewsOnPage)) { fail("One or more of the main view components are not initialized"); } } /** * Tests whether the More Activity is initialized */ public void testActivityElementsExistence() { assertNotNull(mMoreActivity); assertNotNull(mLegalNotices); assertNotNull(mSignOut); assertNotNull(mManageTips); assertNotNull(mInstrumentation); } /** * This tests clicks on 'managed tips' and then clicks on back button */ public void testManageTips() { solo.clickOnText(mMoreActivity.getString(R.string.manage_tips)); assertTrue(solo.searchText(mMoreActivity.getString(R.string.dialog_manage_tips_title))); solo.clickOnText(mMoreActivity.getString(R.string.cancel)); } /** * This tests clicks on 'managed tips' and then clicks on back button */ public void testSignOutCancel() { solo.clickOnText(mMoreActivity.getString(R.string.sign_out)); assertTrue(solo.searchText(mMoreActivity.getString(R.string.dialog_sign_out_title))); solo.clickOnText(mMoreActivity.getString(R.string.cancel)); } /** * Test whether the "change password" link starts the proper Activity */ public void testChangePasswordIntent() { solo.clickOnText(mMoreActivity.getString(R.string.change_password)); solo.sleep(10000); solo.assertCurrentActivity("Expected ChangePasswordActivity", ChangePasswordActivity.class); } /** * Test whether the version code is drawn and displayed and is not null */ public void testVersionCodeDisplayTest() { TextView v = findView(R.id.more_vc, TextView.class); assertTrue(v != null); String vcText = v.getText().toString(); assertTrue(vcText.contains(UserManager.get().getCurrentUser().getUsername())); }}
1 楼 haojunming11 2011-11-10
问一下 ZinioActivityTransitionTest这个类是什么类,我在android环境中怎么写这个类就报错?能不能把这个类的代码贴一下,谢谢啊