pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何在 Java (jUnit4) 中輕松模擬出靜態方法

How can I easily mock out a static method in Java (jUnit4)(如何在 Java (jUnit4) 中輕松模擬出靜態方法)
本文介紹了如何在 Java (jUnit4) 中輕松模擬出靜態方法的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

如何在 Java 中輕松模擬出靜態方法?

How do I easily mock out a static method in Java?

我正在使用 Spring 2.5 和 JUnit 4.4

I'm using Spring 2.5 and JUnit 4.4

@Service
public class SomeServiceImpl implements SomeService {

    public Object doSomething() {
        Logger.getLogger(this.class); //a static method invoked.
        // ...
    }
}

我不控制我的服務需要調用的靜態方法,因此我無法將其重構為更易于單元測試.我以 Log4J Logger 為例,但真正的靜態方法類似.改變靜態方法不是一個選項.

I don't control the static method that my service needs to invoke so I cannot refactor it to be more unit-testable. I've used the Log4J Logger as an example, but the real static method is similar. It is not an option to change the static method.

做 Grails 工作,我習慣使用類似的東西:

Doing Grails work, I'm used to using something like:

def mockedControl = mockFor(Logger)
mockControl.demand.static.getLogger{Class clazz-> … }
…
mockControl.verify()

如何在 Java 中做類似的事情?

How do I do something similar in Java?

推薦答案

基本上,在 Java + Spring 2.5 &目前是 JUnit 4.4.

Basically, There isn't an easy way to do this in Java + Spring 2.5 & JUnit 4.4 at the moment.

雖然可以重構并抽象出靜態調用,但重構代碼并不是我想要的解決方案.

Although it is possible to refactor, and abstract away the static call, Refactoring the code isn't the solution that I was looking for.

JMockit 看起來可以工作,但與 Spring 2.5 和 JUnit 4.4 不兼容.

JMockit looked like it would work, but is incompatibile with Spring 2.5 and JUnit 4.4.

這篇關于如何在 Java (jUnit4) 中輕松模擬出靜態方法的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to mock super reference (on super class)?(如何模擬超級參考(在超級類上)?)
Java mock database connection(Java 模擬數據庫連接)
Mockito ClassCastException - A mock cannot be cast(Mockito ClassCastException - 無法投射模擬)
Set value to mocked object but get null(將值設置為模擬對象但獲取 null)
How to mock DriverManager.getConnection(...)?(如何模擬 DriverManager.getConnection(...)?)
Mockito; verify method was called with list, ignore order of elements in list(模擬;使用列表調用驗證方法,忽略列表中元素的順序)
主站蜘蛛池模板: 厂房出售_厂房仓库出租_写字楼招租_土地出售-中苣招商网-中苣招商网 | 环球周刊网| 电竞馆加盟,沈阳网吧加盟费用选择嘉棋电竞_售后服务一体化 | 卸料器-卸灰阀-卸料阀-瑞安市天蓝环保设备有限公司 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 电池高低温试验箱-气态冲击箱-双层电池防爆箱|简户百科 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 自进式锚杆-自钻式中空注浆锚杆-洛阳恒诺锚固锚杆生产厂家 | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 馋嘴餐饮网_餐饮加盟店火爆好项目_餐饮连锁品牌加盟指南创业平台 | 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 | 热处理炉-退火炉-回火炉设备厂家-丹阳市电炉厂有限公司 | 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 数字展示在线_数字展示行业门户网站 | 深圳货架厂家_金丽声精品货架_广东金丽声展示设备有限公司官网 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 游戏版号转让_游戏资质出售_游戏公司转让-【八九买卖网】 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 |