Robolectric junit测试 - 缺少互联网许可

时间:2015-09-23 12:48:38

标签: android junit robolectric roboguice

我正在为ma app开发一些JUnit测试。 我需要使用Robolectric + Roboguice库。我现在要做的只是简单的测试,它检查活动是否为空。

这是我的代码:

@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP,
        application = TestBoomerangManagerApplication.class,
manifest = "src/main/AndroidManifest.xml")
public class SimpleTest {

    private DirectInviteEmployeesActivity activity;

    @Before
    public void setup() {
        activity = Robolectric.buildActivity(DirectInviteEmployeesActivity
                .class).create().get();

    }

    @Test
    public void shouldNotBeNull() {
        assertThat(activity).isNotNull();

        Button button = (Button) activity.findViewById(R.id.btn_send_invites);
        assertThat(button).isNotNull();
    }

    @Test
    public void shouldFail() {
        assertTrue(true);
    }
}

这很简单,应该可以工作,但是当我尝试运行测试时,它会出现错误:

java.lang.IllegalArgumentException: INTERNET permission is required.
    at com.segment.analytics.Analytics$Builder.<init>(Analytics.java:597)
    at com.segment.analytics.Analytics.with(Analytics.java:116)
    at com.jobtapteam.shared.utils.AnalyticsUtil.sendPageView(AnalyticsUtil.java:90)
    at com.jobtapteam.shared.ui.AbstractActivity.onCreate(AbstractActivity.java:153)
    at com.jobtapteam.employer.ui.activity.DirectInviteEmployeesActivity.onCreate(DirectInviteEmployeesActivity.java:73)
    at android.app.Activity.performCreate(Activity.java:5933)
    at org.robolectric.util.ReflectionHelpers.callInstanceMethod(ReflectionHelpers.java:195)
    at org.robolectric.util.ActivityController$1.run(ActivityController.java:122)
    at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:304)
    at org.robolectric.shadows.CoreShadowsAdapter$2.runPaused(CoreShadowsAdapter.java:45)
    at org.robolectric.util.ActivityController.create(ActivityController.java:118)
    at org.robolectric.util.ActivityController.create(ActivityController.java:129)
    at SimpleTest.setup(SimpleTest.java:33)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
    at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:251)
    at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:188)
    at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:54)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:152)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

显然我已经为清单文件添加了Internet权限。 我不知道我做错了什么。请帮忙 ! :)

0 个答案:

没有答案