How to mock method e in Log

后端 未结 12 1703
忘掉有多难
忘掉有多难 2020-12-13 03:24

Here Utils.java is my class to be tested and following is the method which is called in UtilsTest class. Even if I am mocking Log.e method as shown below

 @B         


        
12条回答
  •  半阙折子戏
    2020-12-13 03:54

    Another solution is to use Robolectric. If you want to try it, check its setup.

    In your module's build.gradle, add the following

    testImplementation "org.robolectric:robolectric:3.8"
    
    android {
      testOptions {
        unitTests {
          includeAndroidResources = true
        }
      }
    }
    

    And in your test class,

    @RunWith(RobolectricTestRunner.class)
    public class SandwichTest {
      @Before
      public void setUp() {
      }
    }
    

    In newer versions of Robolectric (tested with 4.3) your test class should look as follows:

    @RunWith(RobolectricTestRunner.class)
    @Config(shadows = ShadowLog.class)
    public class SandwichTest {
        @Before
        public void setUp() {
            ShadowLog.setupLogging();
        }
    
        // tests ...
    }
    

提交回复
热议问题