Skip to content

Instantly share code, notes, and snippets.

@vegetablesalad
Forked from ChuckJHardy/MainActivityTest.java
Created January 19, 2016 15:29
Show Gist options
  • Save vegetablesalad/2f81a3bfda3d68e0dc59 to your computer and use it in GitHub Desktop.
Save vegetablesalad/2f81a3bfda3d68e0dc59 to your computer and use it in GitHub Desktop.
Android MainActivityTest Example
package co.uk.myapp.beachroidtest;
import android.app.Fragment;
import android.app.Instrumentation;
import android.test.ActivityInstrumentationTestCase2;
import android.test.TouchUtils;
import android.test.ViewAsserts;
import android.view.View;
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
private MainActivity mMainActivity;
private Instrumentation mInstrumentation;
private View mSearchButton;
private View mYourHolidayButton;
private static int TIMEOUT_IN_MS = 10000;
public MainActivityTest() {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(true);
mInstrumentation = getInstrumentation();
mMainActivity = getActivity();
mSearchButton = mMainActivity.findViewById(R.id.action_search);
mYourHolidayButton = mMainActivity.findViewById(R.id.action_your_holiday);
}
public void testLoadsDefaultFragment() {
Fragment fragment = mMainActivity.getFragmentManager()
.findFragmentById(R.id.hotelResultsFragment);
assertTrue(fragment instanceof HotelResultsFragment);
}
public void testActionBarButtonsExists() {
View mainActivityDecorView = mMainActivity.getWindow().getDecorView();
ViewAsserts.assertOnScreen(mainActivityDecorView, mSearchButton);
ViewAsserts.assertOnScreen(mainActivityDecorView, mYourHolidayButton);
}
public void testSearchButtonLoadsSearchActivity() {
// Set up Activity Monitor
Instrumentation.ActivityMonitor searchActivityMonitor =
mInstrumentation.addMonitor(SearchActivity.class.getName(),
null, false);
// Click ActionBar Search Icon
TouchUtils.clickView(this, mSearchButton);
// Wait for the Activity to Load
SearchActivity receiverActivity = (SearchActivity)
searchActivityMonitor.waitForActivityWithTimeout(TIMEOUT_IN_MS);
// Check the Activity has exists
assertNotNull("SearchActivity is null", receiverActivity);
// Check the Activity has loaded
assertEquals("Monitor for SearchActivity has not been called",
1, searchActivityMonitor.getHits());
// Remove the Activity Monitor
getInstrumentation().removeMonitor(searchActivityMonitor);
}
public void testYourHolidayButtonLoadsYourHolidayActivity() {
// Set up Activity Monitor
Instrumentation.ActivityMonitor yourHolidayActivityMonitor =
mInstrumentation.addMonitor(YourHolidayActivity.class.getName(),
null, false);
// Click ActionBar Your Holiday Icon
TouchUtils.clickView(this, mYourHolidayButton);
// Wait for the Activity to Load
YourHolidayActivity receiverActivity = (YourHolidayActivity)
yourHolidayActivityMonitor.waitForActivityWithTimeout(TIMEOUT_IN_MS);
// Check the Activity has exists
assertNotNull("YourHolidayActivity is null", receiverActivity);
// Check the Activity has loaded
assertEquals("Monitor for YourHolidayActivity has not been called",
1, yourHolidayActivityMonitor.getHits());
// Remove the Activity Monitor
getInstrumentation().removeMonitor(yourHolidayActivityMonitor);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment