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 ...
 
随机推荐
- meta标签清理缓存
			
如果需要在html页面上设置不缓存,这在<head>标签中加入如下语句: <meta http-equiv="Pragma" content="no-c ...
 - BigTale
			
Google's BigTable 原理 (翻译) 题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才. ...
 - python中的最最最基本语法(1)
			
注意:对于我这个以前用c/c++的同学来说,可能一开始学习pyhon时有点不适应的,为什么呢?因为吧,python中,没有这玩意:{},也不用每句话才用分号分开的.python中通过缩进来分块的,一行 ...
 - Sqlserver_视图
			
SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 您可 ...
 - mysql 截断
			
当id为int是,如果是10位数,可以插入,primary key不能重复插入,其默认值可以为NULL一个varchar字段的值如果长度设定为255,则如果其长度为256也可以插入,但已经被截取到了2 ...
 - 运行最快的安卓模拟器VirtualBox安装教程
			
网上有多种多样的安卓模拟器,蓝手指啊,百度的MTC等等,但是他们的运行速度,与电脑的切合度都没有VirtualBox安装Android-X86结合在一起来的快. 工具/原料 电脑一台 网络 方法/步骤 ...
 - CollectionFramework
 - xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误
			
xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 一:场景 xcode 同时引入了 libA.a, libB.a 两个静态类库,如果 这两个静态类库之中 ...
 - 实战微信JS SDK开发:贺卡制作与播放(1)
			
前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细 ...
 - [saiku] 系统登录成功后查询Cubes
			
一.系统启动时初始化ds和conn 1.查询出目前系统拥有的Datasources和Connections放入内存中 2.比对saiku-datasources中的ds是否有新增的,如果有,创建新的d ...