powermock模拟私有方法

在单元测试中,有时候需要模拟一个类的私有方法,powermock提供了这样的功能

以下是要测试的类

public class CalcService {

       public int increase(int i){
           return i+j(i);
       }
     
       private int j(Integer j){
           return j;
       }
}

 

以下是测试类

import org.easymock.EasyMock;
import org.junit.Test;
import org.powermock.modules.junit4.PowerMockRunner;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import com.tdd.powermock.CalcService;
import static org.junit.Assert.assertTrue;
import static org.powermock.api.easymock.PowerMock.*;

@RunWith(PowerMockRunner.class)
@PrepareForTest(CalcService.class)
public class CalcServiceTest {
    @Test
    public void testIncrease() throws Exception{
        int expected=3;
        CalcService tested = createPartialMock(CalcService.class, "j");
        expectPrivate(tested, "j",1).andReturn(2);
        replay(tested);
        assertTrue(expected==tested.increase(1));
        verify(tested);
        
    }
}

 

这些代码很简单,相信很容易看懂,另外需要的jar包如下,以maven来添加依赖

<dependency>
			<groupId>org.easymock</groupId>
			<artifactId>easymock</artifactId>
			<version>3.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.8</version>
		</dependency>
			<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4</artifactId>
			<version>1.4.10</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-api-easymock</artifactId>
			<version>1.4.10</version>
			<scope>test</scope>
		</dependency>
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值