Skip to content

Instantly share code, notes, and snippets.

@draftcode
Created October 27, 2012 09:54
Show Gist options
  • Select an option

  • Save draftcode/3963845 to your computer and use it in GitHub Desktop.

Select an option

Save draftcode/3963845 to your computer and use it in GitHub Desktop.
package com.github.draftcode;
import roboguice.activity.RoboActivity;
import roboguice.inject.InjectExtra;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends RoboActivity {
@InjectExtra("test")
String a;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
package com.github.draftcode;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import roboguice.RoboGuice;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.google.inject.Module;
import com.google.inject.util.Modules;
import com.xtremelabs.robolectric.Robolectric;
import com.xtremelabs.robolectric.RobolectricTestRunner;
import static org.junit.Assert.fail;
@RunWith(RobolectricTestRunner.class)
public class MainActivityTest {
MainActivity activity;
@Test
public void someTest() throws Exception {
activity.onCreate(null);
Assert.assertEquals("a", activity.a);
}
private class TestModule extends AbstractModule {
@Override
protected void configure() {
}
}
@Before
public void setUp() {
activity = new MainActivity();
Intent intent = new Intent();
intent.putExtra("test", "a");
activity.setIntent(intent);
setUpRoboGuice(new TestModule(), activity);
}
@After
public void tearDown() {
tearDownRoboGuice();
}
// --------------------------------------
protected void setUpRoboGuice(Module module, Context injectionContext) {
Application app = Robolectric.application;
Module m = Modules.override(RoboGuice.newDefaultRoboModule(app)).with(
module);
RoboGuice.setBaseApplicationInjector(app, RoboGuice.DEFAULT_STAGE, m);
RoboGuice.injectMembers(injectionContext, this);
}
protected void setUpRoboGuice(Module module) {
setUpRoboGuice(module, Robolectric.application);
}
protected void tearDownRoboGuice() {
RoboGuice.util.reset();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment