Robolectric not using test application

后端 未结 3 1802
抹茶落季
抹茶落季 2021-02-06 03:11

According to this link I can create a test application which Robolectric will automatically start using in tests. I cannot get this to work.

I am using Dagger for depen

相关标签:
3条回答
  • 2021-02-06 03:38

    You can configure it in the file org.robolectric.Config.properties

    application = <fully qualified name of the Application>
    

    See http://robolectric.org/configuring/

    0 讨论(0)
  • 2021-02-06 03:53

    It's really simple in Robolectric 3.0, you add it directly to the @Config annotation.

    @RunWith(RobolectricGradleTestRunner.class)
    @Config(constants = BuildConfig.class, sdk = 21,application = TestApplication.class)
    public class ActivityTest {
    
    0 讨论(0)
  • 2021-02-06 03:58

    Apologies, forgot about this. To resolve this I created a TestApplication residing along side the tests. Then I modified our TestRunner (which extends the RobolectricTestRunner) to:

    public class TestRunner extends RobolectricTestRunner {
    
        public TestRunner(final Class<?> testClass) throws InitializationError {
            super(testClass);
        }
    
        ...
    
        @Override
        protected Class<? extends TestLifecycle> getTestLifecycleClass() {
            return MyTestLifecycle.class;
        }
    
        public static class MyTestLifecycle extends DefaultTestLifecycle {
            @Override
            public Application createApplication(final Method method, final AndroidManifest appManifest) {
                // run tests under our TestApplication
                return new TestApplication();
            }
        }
    
        ...
    
    }
    
    0 讨论(0)
提交回复
热议问题