PowerMock (UUID, private method)

本文介绍了如何在项目中配置Maven依赖以使用PowerMock,特别地,讲解了如何利用PowerMock来模拟UUID类的行为以及调用私有方法。通过参考提供的GitHub文档,开发者可以深入理解并应用PowerMock的这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. maven配置依赖

<properties>
    <powermock.version>2.0.2</powermock.version>
</properties>
<dependencies>
   <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
   </dependency>
   <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-mockito</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
   </dependency>
</dependencies>

2. 使用

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.mockito.Mockito.*;


@RunWith(PowerMockRunner.class)
@PrepareForTest({MyModelService.class})

public class MyModelServiceTest {

    @InjectMocks
    MyModelService myModelService;

    @Before
    public void setUp() { MockitoAnnotations.initMocks(this);}

    @Test
    public void should_get_uuid_successfully(){
        
        //UUID

        UUID uuid = UUID.fromString("5211E915-C3E2-4DCB-0776-C7B900F38AB7");

        mockStatic(UUID.class);
        when(UUID.randomUUID()).thenReturn(uuid);
        MyModel model = myModelService.approve();
        
        //private method
         MyModelService spy = PowerMockito.spy(new MyModelService());

        // use PowerMockito to set up your expectation
        PowerMockito.doReturn(value).when(spy, "privateMethodToMock", "parameter1");
        // also can use PowerMockito.when
        //PowerMockito.when(spy, "privateMethodToMock", parameter1).thenReturn(value);

    }
}

参考文档:https://github.com/powermock/powermock

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值