Skip to content

Instantly share code, notes, and snippets.

@kmmraj
Last active April 4, 2017 10:08
Show Gist options
  • Save kmmraj/379279f1e3ad6ba96b58d85b642808f0 to your computer and use it in GitHub Desktop.
Save kmmraj/379279f1e3ad6ba96b58d85b642808f0 to your computer and use it in GitHub Desktop.
HomeActivityUnitTest.java
package com.mycompany.flightstatuslistview.homeScreen;
import com.mycompany.flightstatuslistview.BuildConfig;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.util.ActivityController;
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, manifest = "app/src/main/AndroidManifest.xml", sdk = 21)
public class HomeActivityUnitTest {
@Before
public void setUp(){}
@After
public void tearDown(){}
@Test
public void HomeActivity_ShouldNOT_be_Null(){
//Given
HomeActivity activity = Robolectric.setupActivity(HomeActivity.class);
//When
// Then
Assert.assertNotNull(activity);
}
@Test
public void onCreate_shouldCall_fetchHomeMetaData(){
//Given
HomeActivityOutputSpy homeActivityOutputSpy = new HomeActivityOutputSpy();
HomeActivity homeActivity = Robolectric.setupActivity(HomeActivity.class);
// It must have called the onCreate earlier,
// we are injecting the mock and calling the fetchMetaData to test our condition
homeActivity.output = homeActivityOutputSpy;
//When
homeActivity.fetchMetaData();
//Then
Assert.assertTrue(homeActivityOutputSpy.fetchHomeMetaDataIsCalled);
}
@Test
public void onCreate_Calls_fetchHomeMetaData_withCorrectData(){
//Given
HomeActivityOutputSpy homeActivityOutputSpy = new HomeActivityOutputSpy();
HomeActivity homeActivity = Robolectric.setupActivity(HomeActivity.class);
homeActivity.output = homeActivityOutputSpy;
//When
homeActivity.fetchMetaData();
//Then
Assert.assertNotNull(homeActivity);
Assert.assertTrue(homeActivityOutputSpy.homeRequestCopy.isFutureTrips);
}
private class HomeActivityOutputSpy implements HomeInteractorInput {
boolean fetchHomeMetaDataIsCalled = false;
HomeRequest homeRequestCopy;
@Override
public void fetchHomeMetaData(HomeRequest request) {
fetchHomeMetaDataIsCalled = true;
homeRequestCopy = request;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment