首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发之逻辑单元测试

、Mockito等都有一个共同的缺点:不能mock静态、final、私有方法等。...()); // or PowerMockito.doReturn(true).when(syncInformHandler, "isLocked", Mockito.anyLong()); mock后的对象有什么区别...canDoSync", Mockito.anyLong(), Mockito.anyLong()); mock类中的静态方法 PowerMockito.mockStatic(ManagerFactory.class...()区别在于Mockito无法监视对象的final方法,但是PowerMockito可以,其实PowerMockito是基于Mockito的基础上拓展开发的,所以功能更加强大,也兼容了Mockito的功能...掉,返回我们指定的值,Java单元测试的重点是测试Java代码的逻辑,具体的android相关的是不关注的,可以通过android单元测试来测试android的相关代码 每一个单元测试方法都要写详细的注释

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    #Android单元测试学习总结「建议收藏」

    运行单个测试方法或多个测试类 二、Mockito测试框架的使用 1. Mock概念的理解 2. Mockito中几种Mock对象的方式 3....二、Mockito测试框架的使用 前面介绍的只能测试不涉及Android相关Api的java代码用例,如果涉及到Android相关Api的时候,就不方便了,这时如果不依赖第三方库的话可能需要使用仪器化测试跑到...参数匹配器 (matchers) Mockito以自然的java风格来验证参数值: 使用equals()函数。...使用真实返回值 如果在测试的过程中又遇到不需要mock出来的静态方法的模拟返回值,而是需要真实的返回值,怎么办呢,其实跟Mockito一样,PowerMockito同样提供thenCallRealMethod...PowerMockito本身已经有对Mockito的依赖库支持了,所以只依赖PowerMockito就可以了。

    5.1K20

    Spock框架Mock静态资源经验汇总

    静态方法 Mock静态方法我们使用PowerMock结合Mockito的方案,首先在测试类增加如下注解: @RunWith(PowerMockRunner.class) @PowerMockRunnerDelegate...其次我们需要在类初始化代码中对这个类进行Mock,语法如下: PowerMockito.mockStatic(HttpBase.class) PowerMockito.mockStatic...原因之前提过,主要是因为增加了类注解之后,Spock和Mockito一的Mock对象和定义方法的功能会无法运行,这个没找到具体的文档做出区分,所以如果遇到混合场景,建议使用PowerMock进行对象的Mock...com.funtester.util.slowapi.HttpBase"]) class TaskScheduledTest extends Specification { @Shared def service = PowerMockito.mock...高版本的依赖mockito-inline中,也是支持对静态类和静态方法的Mock的,但在Spock中极难使用,资料说是因为项目pom中的Spock版本与Mockito版本不一致导致的,尝试了几个组合依然无法解决

    1.7K30

    使用PowerMock进行单元测试

    SpringRunner两个单元测试,鉴于SpringRunner启动的一系列依赖和数据连接的问题,推荐使用PowerMockRunner,这样能有效的提高测试的效率,并且其提供的API能覆盖的场景广泛,使用方便,可谓是Java...PowerMock是一个Java模拟框架,可用于解决通常认为很难甚至无法测试的测试问题。使用PowerMock,可以模拟静态方法,删除静态初始化程序,允许模拟而不依赖于注入,等等。...使用示例 4.1 模拟接口返回 首先对接口进行mock,然后录制相关行为 InterfaceToMock mock = Powermockito.mock(InterfaceToMock.class)...Powermockito.when(mock.method(Params…)).thenReturn(value) Powermockito.when(mock.method(Params..))....如:Mockito.anyInt(),Mockito.anyString() 4.9 处理public void型的静态方法 Powermockito.doNothing.when(T class2mock

    3.5K30

    PowerMock(一):PowerMock的使用

    如果项目中有mockito依赖还需要注意mockito的版本与powermock版本对应关系,对应如下图:详细请参考Using PowerMock with Mockito,如果引入的版本不匹配则可能会报如下错误...: java.lang.TypeNotPresentException: Type org.powermock.modules.junit4.PowerMockRunner not present 依赖引入之后就可以编写单元测试代码了...mock新建对象 如果我们要对一个实体对象Bean进行Mock,只需要这样写PowerMockito.whenNew(User.class).withAnyArguments().thenReturn(...如下所示: UserMapper mock = PowerMockito.mock(UserMapper.class); 这里需要特别注意的是被mock的类必须要在@PrepareForTest...= PowerMockito.mock(UserMapper.class); when(mock.getUserName()).thenReturn("123"); 参数模糊匹配 前面的测试方法中

    7.9K71

    在多线程构建场景下Powermockito无法在不同类中Mock同一个静态方法

    在修改单元测试的过程中,不幸踩了个坑,发现 Powermockito 的PowerMock.mockStatic(ClassThatContainsStaticMethod.class) 在多线程场景下是无法正常工作的...,这再次验证了之前 ThrougthWorks 顾问说的那句话: 除非万不得已,或者是Mock遗留系统接口,否则不要使用Powermockito。...由于我不是Powermockito的专家,所以无法深入的去探究这个问题的原因,但是我想,这应该是和静态方法本身在一个JVM内的唯一性有关,我截取了网上两个解释供参考: Explanation 1 Without...going into details let’s look at this code written using with Mockito : given(mock.doSomethingWith(eq...Check out a [http://mockito.googlecode.com/svn/tags/latest/javadoc/org/mockito/Mockito.html#22 timeout

    6K30

    玩花招的PowerMock

    自然,我们不需要自己写Mock,有许多现成的好用框架,例如Java平台下的Mockito与EasyMock,.NET平台下的Moq,以及C++下的Google Mock和MockCpp。...(); EmployeeTableUtil.findAll();} Mock静态方法的关键是先要调用框架定义的PowerMockito类的mockStatic()方法(针对EasyMock有相似的类...方法接收的参数就是我们要Mock的类的类型。接下来就可以调用Mockito框架的方法,对我们要模拟的方法findAll()进行模拟,这里主要的工作是为模拟方法的返回值设置一个stub。...如果需要验证被Mock的方法是否被调用,则需要调用PowerMockito.verifyStatic()方法,紧随其后的是被mock的方法。...Employee("1"); PowerMockito.mockStatic(EmployeeTableUtil.class); PowerMockito.doThrow(

    1.3K20
    领券