Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@ChuckJHardy
Created March 19, 2014 10:44
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ChuckJHardy/9639287 to your computer and use it in GitHub Desktop.
Save ChuckJHardy/9639287 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);
}
}
@BarryFluxus
Copy link

BarryFluxus commented Jun 8, 2016

Hello,

I do the same in my project and it return a NullPointerException in setUp when I put getActivity() in a variable.

`import android.app.Instrumentation;
import android.content.Intent;
import android.test.ActivityInstrumentationTestCase2;
import android.test.ViewAsserts;
import android.view.View;

import org.junit.Assert;

public class MainActivityTest extends ActivityInstrumentationTestCase2 < MainActivity> {

 private MainActivity activity ;

private Instrumentation instrumentation;
private Instrumentation.ActivityMonitor activityMonitor;
private Intent startIntent;

private View t1;

public MainActivityTest(){
    super(MainActivity.class);
}

public void setUp() throws Exception {
    super.setUp();

    setActivityInitialTouchMode(true);

  activity =  getActivity();

    instrumentation = getInstrumentation();

  t1 = activity.findViewById(R.id.textView);

}

public void testPresence(){

    View origin = activity.getWindow().getDecorView();

    ViewAsserts.assertOnScreen(origin, t1);

}`

did you have any idea?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment