PowerMock使用遇到的问题——2
如果在测一个类的某一个方法时,这个方法还调用了此类的其他方法,那么如何指定其他方法的返回值呢?
public class Calc {
- static {
- System.out.println("hahaha");
- }
- public int add(int a, int b) {
- return interADD(a, b);
- }
- private int interADD(int a, int b) {
- return a + b;
- }
- public int minus(int a, int b) {
- return interMinus(a, b);
- }
- public int interMinus(int a, int b) {
- return a-b;
- }
- }
- package com.kevin.util;
- import static org.junit.Assert.*;
- import junit.framework.Assert;
- import org.easymock.EasyMock;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.powermock.api.easymock.PowerMock;
- import org.powermock.core.classloader.annotations.PrepareForTest;
- import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
- import org.powermock.modules.junit4.PowerMockRunner;
- @RunWith(PowerMockRunner.class)
- @PrepareForTest({Calc.class})
- //suppress static initial
- @SuppressStaticInitializationFor({"Calc.class"})
- public class CalcTest {
- //mock private method in class that be testing
- @Test
- public void testAdd() {
- Calc createPartialMock = PowerMock.createPartialMock(Calc.class, "interADD");
- try {
- PowerMock.expectPrivate(createPartialMock, "interADD",2,3).andReturn(1000);
- PowerMock.replay(createPartialMock);
- int result = createPartialMock.add(2, 3);
- Assert.assertEquals(1000, result);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- fail();
- }
- }
- //mock public method int class that be testing
- @Test
- public void testMinus() {
- Calc createPartialMock = PowerMock.createPartialMock(Calc.class, "interMinus");
- try {
- EasyMock.expect(createPartialMock.interMinus(5, 4)).andReturn(1000);
- EasyMock.replay(createPartialMock);
- int result = createPartialMock.minus(5, 4);
- Assert.assertEquals(1000, result);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- fail();
- }
- }
- }
PowerMock使用遇到的问题——2的更多相关文章
- Mock之easymock, powermock, and mockito
easymock, powermock, and mockito Easymock Class Mocking Limitations To be coherent with interface mo ...
- 用PowerMock mock 由工厂方法产生的对象
有些对象需要mock的对象是由工厂方法产生出来的,而工厂方法一般是静态方法,这时候就需要同时mock工厂方法及对象 被测方法: public class EmployeeServiceFactory ...
- 用PowerMock spy mock private方法
在实际的工作中,经常碰到只需要mock一个类的一部分方法,这时候可以用spy来实现. 被测类: public class EmployeeService { public boolean exist( ...
- 用PowerMock mock static方法
在编写代码时,经常需要调用别人已经写好的工具类,而这些工具提供的方法经常是static方法,在这里,直接贴出<PowerMock实战手册>中的例子 待测试方法: public class ...
- 用PowerMock mock 临时变量
在开发时,经常遇到这种情况,被测试方法所调用的类不是通过构造注入的,而是通过临时new出来的,如下面待测方法: public class EmployeeService { private Emplo ...
- PowerMock遇到的问题——5
在做单元测试时,有时在一个方法中会调用这个类的其他私有方法,那么如何指定这些方法的返回值呢? 解决方法:用 createPartialMock 具体用法如下: TestClass test=Power ...
- 用maven搭建 testNG+PowerMock+Mockito测试框架
单元测试是开发中必不可少的一部分,是产品代码的重要保证. Junit和testNG是当前最流行的测试框架,Junit是使用最广泛的测试框架,有兴趣的话自己baidu一下. testNG基于Junit和 ...
- PowerMock 简介--转载
原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-powermock/ EasyMock 以及 Mockito 都因为可以极大地简化单元测试的书 ...
- PowerMock遇到的问题——4
当我们在测试一个方法的构造方法的时候,有的时候内部需要new一些对象,这是就需要用到PowerMock.exceptNew(),这个方法,但有时候传的参数有关键字this,比如SAPPublisher ...
- PowerMock 遇到的问题——2
如果我们要测试的类继承另一个类,而且在构造方法中有super():那么怎么Mock那个super语句呢? 在PowerMock中有一个suppressConstructor方法,具体写法如下: Pow ...
随机推荐
- mysql 循环控制
1.使用whileDROP PROCEDURE IF EXISTS `addstudent`;DELIMITER ;;CREATE PROCEDURE `addstudent`(iNum int)BE ...
- Python学习笔记4—列表
列表定义 >>> a=['] >>> type(a) <type 'list'> >>> bool(a) #列表有值,则为true T ...
- C++——类和动态内存分配
一.动态内存和类 1.静态类成员 (1)静态类成员的特点 无论创建多少对象,程序都只创建一个静态类变量副本.也就是说,类的所有对象都共享同一个静态成员. (2)初始化静态成员变量 1)不能在类声明中初 ...
- Python中的Class的讨论
尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一门OO语言哦.因此我们关注Python在FP上的优势的同时,还得了解一下P ...
- 详解DHV:怎么具体展示高价值
我的理解里面:高价值分两个部分,一个是静态的,一个是动态的. 我把静态的称为硬性指标,动态的称为软性指标. 下面我给大家仔细解释一下两个指标的具体展示. ----------------------- ...
- Linux下scp命令的用法
scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名 对拷文件夹 (包括文件夹本身) scp -r /home/wwwroot/www/charts/util root@192.168.1 ...
- DirectX中的纹理及其创建
正如大多初学者会遇到一个问题, 导入的图片为何不是原来的尺寸?例如800*600的实际上通过D3DXCreateTextureFromFile后变成的是1024*1024,即宽和高默认都会自动扩展为2 ...
- 使用mybatis操作mysql数据库SUM方法返回NULL解决
使用SQL语句用函数SUM叠加的时候,默认查询没有值的情况下返回的是NULL,而实际可能我们要用的是返回0 解决: SELECT SUM(total) FROM test_table 改成: SE ...
- struts2文件下载相关信息
struts.xml文件配置: <span style="font-size:16px;"><?xml version="1.0" encod ...
- 从别人那淘的知识 深入剖析Java中的装箱和拆箱
(转载的海子的博文 海子:http://www.cnblogs.com/dolphin0520/) 深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来 ...