成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用PowerMock來(lái)Mock靜態(tài)函數(shù)

開(kāi)發(fā) 后端
EasyMock和Mockito等框架,對(duì)static, final, private方法均是不能mock的。

EasyMock和Mockito等框架,對(duì)static, final, private方法均是不能mock的。 這些框架普遍是通過(guò)創(chuàng)建Proxy的方式來(lái)實(shí)現(xiàn)的mock。 而PowerMock是使用CGLib來(lái)操縱字節(jié)碼而實(shí)現(xiàn)的mock,所以它能實(shí)現(xiàn)對(duì)上面方法的mock。今天先來(lái)看一個(gè)簡(jiǎn)單的例子吧:

***個(gè)注解是指定Runner

第二個(gè)是你要測(cè)試的類(lèi),這個(gè)里面調(diào)用了靜態(tài)類(lèi)

下面我結(jié)合EasyMock給一個(gè)簡(jiǎn)單的例子:

Java代碼

  1. import java.io.IOException;     
  2.     
  3. public class SystemPropertyMockDemo {     
  4.     public String getSystemProperty() throws IOException {     
  5.         return System.getProperty("property");     
  6.     }     

 

Java代碼

  1. import org.easymock.EasyMock;     
  2. import org.junit.Assert;     
  3. import org.junit.Test;     
  4. import org.junit.runner.RunWith;     
  5. import org.powermock.api.easymock.PowerMock;     
  6. import org.powermock.core.classloader.annotations.PrepareForTest;     
  7. import org.powermock.modules.junit4.PowerMockRunner;     
  8.     
  9.     
  10. @RunWith(PowerMockRunner.class)     
  11. @PrepareForTest({SystemPropertyMockDemo.class})     
  12. public class SystemPropertyMockDemoTest {     
  13.     @Test    
  14.     public void demoOfFinalSystemClassMocking() throws Exception {     
  15.         PowerMock.mockStatic(System.class);     
  16.       
  17.         EasyMock.expect(System.getProperty("property")).andReturn("my property");     
  18.       
  19.         PowerMock.replayAll();     
  20.       
  21.         Assert.assertEquals("my property",     
  22.                                   new SystemPropertyMockDemo().getSystemProperty());     
  23.       
  24.         PowerMock.verifyAll();     
  25.     }     
  26. }    

 

測(cè)試用例里面增加了PrepareForTest注解,表明要測(cè)試的類(lèi),里面包含靜態(tài)方法的調(diào)用。

然后在測(cè)試類(lèi)里面指定要測(cè)試的靜態(tài)類(lèi)和它的方法。

實(shí)際上PowerMock是在EasyMock上面做了擴(kuò)展,這些寫(xiě)法都是和EasyMock相同的。

今天先寫(xiě)這么一個(gè)簡(jiǎn)單的例子,然后以后會(huì)將用到的都寫(xiě)上來(lái)。

當(dāng)然了,更多的可以參考:

http://code.google.com/p/powermock/

另外它的maven依賴(lài)如下,我在使用的時(shí)候就弄錯(cuò)了

Xml代碼

  1. <dependency>    
  2.           <groupId>org.powermockgroupId>    
  3.           <artifactId>powermock-module-junit4artifactId>    
  4.           <version>1.4.8version>    
  5.           <scope>testscope>    
  6.        dependency>    
  7.        <dependency>    
  8.           <groupId>org.powermockgroupId>    
  9.           <artifactId>powermock-api-easymockartifactId>    
  10.           <version>1.4.8version>    
  11.           <scope>testscope>    
  12.        dependency>    

 

【編輯推薦】

  1. Spring框架的7個(gè)模塊
  2. 簡(jiǎn)述Spring JDBC的學(xué)習(xí)
  3. Spring 2.0和Spring AOP
  4. Spring對(duì)Quartz任務(wù)調(diào)度提供支持
  5. Spring2.0升級(jí)Spring2.0.7的變化
責(zé)任編輯:金賀 來(lái)源: JavaEye博客
相關(guān)推薦

2012-04-19 09:37:12

ibmdw

2009-08-28 11:48:32

C#靜態(tài)函數(shù)

2017-03-23 16:02:10

Mock技術(shù)單元測(cè)試

2024-08-21 08:22:33

2009-08-26 10:40:39

C# Static H

2023-04-11 08:02:26

單測(cè)技術(shù)JUnit框架

2021-05-05 11:38:40

TestNGPowerMock單元測(cè)試

2009-12-14 09:57:04

Lambda表達(dá)式

2022-04-07 08:00:00

Javascript開(kāi)發(fā)

2021-03-11 12:33:50

JavaPowerMock技巧

2024-07-29 12:12:59

2009-08-20 14:28:00

C#靜態(tài)構(gòu)造函數(shù)

2009-07-31 15:37:45

C#靜態(tài)構(gòu)造函數(shù)

2009-07-31 15:44:02

C#靜態(tài)構(gòu)造函數(shù)

2016-11-14 19:45:39

JavaScript

2014-07-03 09:14:52

靜態(tài)路由

2010-01-27 16:10:32

C++靜態(tài)構(gòu)造函數(shù)

2010-01-21 14:28:03

C++靜態(tài)成員函數(shù)

2009-10-19 14:25:16

靜態(tài)構(gòu)造函數(shù)

2009-08-13 18:02:11

C#靜態(tài)構(gòu)造函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 午夜在线观看视频 | 亚洲成人精品国产 | 一级高清 | 亚洲精品免费观看 | 国产精品永久免费视频 | 美女三区 | 亚洲国产一区二区视频 | 伊人精品在线 | 91国内在线观看 | 激情一区 | 在线一级片 | 精品国产乱码久久久久久丨区2区 | 色一级 | 成人久久网 | 久草视频观看 | 免费视频一区二区 | 久久久久久久国产精品 | 91在线观| 国产一区二区三区四区区 | 天天操操 | 中文二区| 亚洲精品99999 | 第一区在线观看免费国语入口 | 久久久久91 | 国产成人一区在线 | 国产精品免费看 | 日韩欧美日韩在线 | 亚洲成av人影片在线观看 | 麻豆a级片 | 成人精品鲁一区一区二区 | 青青久在线视频 | 日韩黄色免费 | 亚洲午夜精品 | 欧美极品在线观看 | 在线国产精品一区 | 国产精品av久久久久久久久久 | 日韩欧美一区二区三区在线播放 | 亚洲一区电影 | www.操.com| 97在线超碰 | 黄色网址大全在线观看 |