首页 > 其他分享 >powermock 基本使用

powermock 基本使用

时间:2023-11-09 15:48:59浏览次数:24  
标签:基本 PowerMockito class EmployeeDao employeeDao 使用 powermock public mock

1、mock静态方法

例如要mock HttpUtils.post() 方法,该方法是静态方法

@RunWith(PowerMockRunner.class)
@PrepareForTest({EsServiceImpl.class, HttpClientSignUtil.class})
public class EsServiceImplTest {
    @Test
    public void testSearch() {
        PowerMockito.mockStatic(HttpClientSignUtil.class);
        when(HttpClientSignUtil.post(any(),any(),any())).thenReturn("res"));
    }
}    

 

2、mock 局部变量

public class EmployeeService {
    public int getTotalEmployee() {
        EmployeeDao employeeDao = new EmployeeDao(); 
        return employeeDao.getTotal();
    } 
}

mock如下

@RunWith(PowerMockRunner.class)
@PrepareForTest(EmployeeService.class)
public class EmployeeServiceTest {
    @Test
    public void testGetTotalEmployeeWithMock() {
        EmployeeDao employeeDao = PowerMockito.mock(EmployeeDao.class);
        try {
            PowerMockito.whenNew(EmployeeDao.class).withNoArguments().thenReturn(employeeDao);
            PowerMockito.when(employeeDao.getTotal()).thenReturn(10);
            EmployeeService service = new EmployeeService();
            Programming 系列丛书

            int total = service.getTotalEmployee();
            assertEquals(10, total);
        } catch (Exception e) {
            fail("测试失败.");
        }
    }
}

 

3、mock apollo

@Value

public class RecruitPositionServiceImpl implements RecruitPositionService {

    @Value("${email.export.water.receiver:maoning02}")
    private String receiverOa;
}

// ----------------------------------------------------------
@RunWith(PowerMockRunner.class) public class RecruitPositionServiceImplTest { @InjectMocks private RecruitPositionServiceImpl recruitPositionServiceImplUnderTest; @Before public void setUp() throws Exception { ReflectionTestUtils.setField(recruitPositionServiceImplUnderTest, "receiverOa", "receiverOa"); } }

 

@ConfigurationProperties

public class LongChatServiceImpl implements LongChatService {

    @Autowired
    PropertiesConfig propertiesConfig;
}

// --------------------------------------------------------------

@RunWith(PowerMockRunner.class)
@PrepareForTest({LongChatServiceImpl.class, HttpClientSignUtil.class})
public class LongChatServiceImplTest {

    @Mock
    private PropertiesConfig mockPropertiesConfig;

    @InjectMocks
    private LongChatServiceImpl longChatServiceImplUnderTest;

    @Before
    public void setUp() throws Exception {
        longChatServiceImplUnderTest.propertiesConfig = mockPropertiesConfig;
    }
}

 

 

 

 

 

 

 

标签:基本,PowerMockito,class,EmployeeDao,employeeDao,使用,powermock,public,mock
From: https://www.cnblogs.com/r1-12king/p/17821824.html

相关文章

  • 使用C#创建Windows服务
     一、开发环境操作系统:Windows10X64开发环境:VS2015编程语言:C#.NET版本:.NETFramework4.0目标平台:X86 二、创建WindowsService1、新建一个WindowsService,并将项目名称改为“MyWindowsService”,如下图所示: 2、在解决方案资源管理器内将Service1.cs改为......
  • UCWEB使用秘诀
    在使用UCWEB的过程中发现了很多一些UCWEB字定义扩展的HyperLink,发现这些链接很不错,特地写了一些东西,希望做Wap网站的可以充分利用这里标签,扩展Wap的功能 ext:startpage --返回UCWEB首页。具体用户使在wml写入<aherf="ext:startpage">返回首页</a>就OK了ext:refresh--刷......
  • 使用 VSCode+CMake+Ninja 开发RISC-V MCU
    1.安装软件及工具1.1VSCode安装VisualStudionCode(VSCode),是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和Git版本控制系统。VSCode官网VSCode官方文档官网......
  • 使用 @ConfigurationProperties 初始化static配置文件变量
    重点设置静态属性必须添加非静态set方法不然会读取配置文件失败还有就是prefix只支持小写配置文件项如下 配置文件packagecom.mingx.drone.config;importlombok.Data;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.spr......
  • 使用递归图 recurrence plot 表征时间序列
    在本文中,我将展示如何使用递归图RecurrencePlots来描述不同类型的时间序列。我们将查看具有500个数据点的各种模拟时间序列。我们可以通过可视化时间序列的递归图并将其与其他已知的不同时间序列的递归图进行比较,从而直观地表征时间序列。递归图RecurrencePlots(RP)是一种用于......
  • vue3中使用qrcode生成二维码
    安装npminstall--saveqrcode.vueoryarnaddqrcode.vue组件中使用<scriptsetuplang="ts">import{useUiSetStore}from'@store/modules/uiSettings'//导入二维码组件importQrcodeVuefrom'qrcode.vue'constui=useUiSetStore()......
  • 使用Python调用API接口获取淘宝商品数据
    一、引言随着互联网的发展,电子商务已经成为了我们生活中不可或缺的一部分。淘宝作为中国最大的电子商务平台,其商品种类繁多,价格透明,购物方便,深受消费者的喜爱。然而,淘宝的商品数据量庞大,如果我们想要对淘宝的商品进行一些分析,例如商品的价格趋势、销量趋势等,就需要从淘宝的服务器上......
  • log4net 使用
    1:创建log4net配置文件log4net.config<?xmlversion="1.0"encoding="utf-8"?><configuration><configSections><sectionname="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,l......
  • Golang使用crontab
    要是记不住crontab格式,就去网上生成,在线crontab有很多。例如https://www.pppet.net/packagemainimport( "fmt" "github.com/robfig/cron/v3" "time")/**第一个*:second,范围(0-60)第二个*:min,范围(0-59)第三个*:hour,范围(0-23)第四个*:dayofmonth,......
  • 使用SSH远程连接Ubuntu服务器系统
    【前言】愿,所有相遇,都恰逢其时!愿,此刻心头,正满怀欣喜!---你好,朋友,欢迎你! ---对此篇博客中有任何问题和不懂的可以咨询QQ:2759590905实现目的:安装完Ubuntu系统后只能在Ubuntu命令行中输入命令,不能将外面的代码复制进Ubuntu命令行里面,所有本教程......