java UT

mock 构造函数

import static org.junit.Assert.*;
import java.util.ArrayList;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import com.tdtech.eplatform.gatekeeper.config.entity.Listenexternal;
import com.tdtech.eplatform.gatekeeper.constant.IConfigFileSet;

@RunWith(PowerMockRunner.class)
@PrepareForTest(ExcelParasForListener.class)
/*
 * About @PowerMockIgnore:
 * http://www.ryanchapin.com/fv-b-4-816/Java-PowerMock-Could-not-reconfigure-JMX-java-lang-LinkageError-Solution.html
 */
@PowerMockIgnore({ "javax.management.*" })
public class ExcelParasForListenerTest {

    private ExcelParasForListener excelParasForListener = new ExcelParasForListener();

    @Test
    public void testLoadIPlistenerConfig() throws Exception {
        // mock ExcelReader constructor
        ExcelReader mocIPexcelReader = new ExcelReader(IConfigFileSet.easyconfTemplatePath,
                IConfigFileSet.sheetNameofListenIPMapping);
        PowerMockito.whenNew(ExcelReader.class)
                .withArguments(IConfigFileSet.importEasyconfFilePath, IConfigFileSet.sheetNameofListenIPMapping)
                .thenReturn(mocIPexcelReader);
        // test and verify
        ArrayList<Listenexternal> loadIPlistenerConfig = excelParasForListener.loadIPlistenerConfig();
        assertEquals("10.10.10.11", loadIPlistenerConfig.get(0).getListenIP());
        assertEquals(2404, loadIPlistenerConfig.get(0).getListenPort());
    }
}

可参考"如何使用PowerMock和Mockito来mock 1. 构造函数 2. 静态函数 3. 枚举实现的单例 4. 选择参数值做为函数的返回值":

http://www.blogjava.net/usherlight/archive/2015/06/16/425740.html

时间: 2024-12-28 23:28:53

java UT的相关文章

java8 接口的default方法和静态方法

以前,接口里的方法要求全部是抽象方法,java8以后允许在接口里定义默认方法和类方法.不同的是:默认方法可以通过实现接口的类实例化的对象来调用,而类方法就相对于工具方法了.需要注意的是,此处的静态方法只能被public修饰(或者省略不写),不能是private或者protected. 好处:在Java 8 之前,接口不能有静态方法,因此按照惯例,接口Type 的静态工厂方法被放一个名为ypes 的不可实例化的伴生类中.例如Java Collections Framework的集合接口有45 个工

UT源码 065 ( java version )

NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求输入变量month.day和year均为整数值,并且满足下列条件: 条件1  1≤ month ≤12  否则输出,月份超出范围 条件2  1≤ day ≤31 否则输出,日期超出范围 条件3  1912≤ year ≤2050  否则输出:年份超出范围 String  nextdate(int m

2017-9月微信公众号支付-Java详解

微信支付源代码 在此之前,先C麻瓜藤N遍,MD官方文档一半正确一半错误.言归正传, 微信支付整体流程:微信授权登录商户的公众号--微信支付的公众号配置--统一下单--微信js调起支付页面--输入密码支付--支付成功,异步回调URL处理商户的相应业务 一.业务场景: 先看一下支付的业务场景:用户使用微信登录商户页面,点击支付按钮,调起微信支付,选择付款卡号,输入密码,完成支付,如图: 场景十分简单,不过步骤比较多,稍不注意就掉坑里了. 二.微信公众号支付的配置准备: 1)调用公众号支付,首先你得有

自己写的基于java Annotation(注解)的数据校验框架

JavaEE6中提供了基于java Annotation(注解)的Bean校验框架,Hibernate也有类似的基于Annotation的数据校验功能,我在工作中,产品也经常需要使 用数据校验,为了方便和重用,自己写了一个简单的基于Annotation的校验框架.有兴趣的可以扩展. 框架说明: AnnotationValidable接口:所有需要使用该校验框架的类都要实现它,该类中没有任何方法需要实现,仅仅是一个表明那些类需要使用该校验框架的标识. GetFiledValue类:是一个工具类,对

20145225《Java程序设计》 2015—2016年学期课程总结

20145225<Java程序设计> 2015—2016年学期课程总结 读书笔记链接汇总 1.2016年2月25日 <Java程序设计>课程准备之问卷调查 摘要: 一.你对自己的未来有什么规划?做了哪些准备? 答:未来就是找个好工作,在保证自己与父母生活条件良好的基础上,进一步的提高精神上的需求...... 2.2016年3月6日 <Java程序设计>第1周学习总结——小试牛刀 摘要: 教材学习内容总结 1.java语言概述:一门高级编程语言. 2.java语言的三种技

java JDK8 学习笔记——第13章 时间与日期

第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时是借由观测远方星体跨过子午线而得,在引入UTC之前,GMT和UT是相同的. 3.国际原子时TAI 将秒的国际单位定义为铯原子辐射振动91926331770周耗费的时间,从UT的1958年开始同步. 4.世界协调时UTC 采用了闰秒修正,确保UTC与UT相差不会超过0.9秒,加入闰秒的时间通常会在6月

java中的特殊对象及其应用

/* * System:类中的方法和属性都市静态的. * out:标准输出,默认是控制台. * in:标准输入,默认是键盘. * Propperties getProperties():获取系统属性信息. */ import java.util.Properties; public class SystemDemo { public static void main(String[] args) { //Properties还hashtable中的子类,所以可以通过map的方法获取该集合的元素.

Java多线程模型

谈到Java多线程就涉及到多线程的模型及Java线程与底层操作系统之间的关系.正如我们熟知,现代机器可以分为硬件和软件两大块,如图2-5-1-1,硬件是基础,软件提供实现不同功能的手段.而且软件可以分为操作系统和应用程序,操作系统专注于对硬件的交互管理并提供一个运行环境给应用程序使用,应用程序则是能实现若干功能的并且运行在操作系统环境中的软件.同样,线程按照操作系统和应用程序两层次可以分为内核线程(Kernel Thread)和用户线程(User Thread). 图2-5-1-1 所谓内核线程

Java WEB 笔记

1. 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-version 到一个非中文目录下 2). 配置一个环境变量,JAVA_HOME(指向 JDK 安装目录)或 JRE_HOME 3). 通过双击 apache-tomcat-version\bin 目录下的 catalina run 或 startup.bat,启动服务器,catalina.bat 4). 可以在浏览器中输入 localhost:8080 来检验 Tomcat 安装是否正确 5). 若已经启动了一个