PowerMock学习笔记,对单例的测试方法

对单例进行mock

单例类

public class PmModelHandler {

    // 包含要mock掉的成员变量
    private static LogService logger = LogService.getInstance();

    private static PmModelHandler instance = new PmModelHandler();

    public static PmModelHandler getInstance() {
        return instance;
    }

    private PmModelHandler() {

    }

public void method(){
}

测试类

import java.util.Set;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

import com.zte.LogService;

@RunWith(PowerMockRunner.class)
@PrepareForTest({ PmModelHandler.class, LogService.class })
public class ModelUtilTest {

    private PmModelHandler handler;

    @Before
    public void setUp() throws Exception {
        LogService logService = PowerMockito
                .mock(LogService.class);
        PowerMockito.doNothing().when(logService, "writeLog", anyString());
        PowerMockito.mockStatic(LogService.class);
        PowerMockito.doReturn(logService).when(LogService.class, "getInstance");

        handler = PowerMockito.mock(PmModelHandler.class);
        PowerMockito.mockStatic(PmModelHandler.class);
        PowerMockito.doReturn(handler).when(PmModelHandler.class, "getInstance");
    }

     @Test
    public void testMethod() throws Exception {

          PowerMockito.doReturn(your obj).when(handler, "methodname", "input");

          …………

 
 

 

有时会出现依赖的类无法初始化,而且mock不掉的时候,可使用注解屏蔽掉告警

@SuppressStaticInitializationFor("com.xxx.class")

 

转载于:https://www.cnblogs.com/BrokenSwitch/p/9852592.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值