mockito && powerMockito

区别:powerMockito可以mock类的静态方法,私有方法,私有成员变量。

1:mock类静态方法

@RunWith(PowerMockRunner.class)

@PrepareForTest(StaticClass.class)//含有静态方法的静态类

class PowerMockitoTest{

             @Test

            public void testXXX(){

                PowerMockito.mockStatic(StaticClass.class);

                PowerMockito.when(StaticClass.staticMethod()).thenReturn(new Object());

            }

}

2:mock私有方法

@RunWith(PowerMockRunner.class)

@PrepareForTest(PrivateClass.class)//含有私有方法的类

class PowerMockitoTest{

    @Test          

    public void testXXX(){           

            PrivateClass privateObject = PowerMockito.spy(new PrivateClass());                        PowerMockito.doReturn(new Object())

                   .when((privateObject,"privatemethodName",parameterList));       

     }

}

3:mock私有成员变量

@RunWith(PowerMockRunner.class)

@PrepareForTest(PrivateClass.class)//含有私有方法的类

class PowerMockitoTest{


        @Mock

        private PrivateField privateFiledObject;


        @Test

         public void testXXX(){

                PrivateClass privateObject = PowerMockito.spy(new PrivateClass());                       

                MemberModifier.field(PrivateClass.class,"privateField")

                                            .set(privateObject,privateFieldObject);

              }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容