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 ...
随机推荐
- hdu4588Count The Carries
链接 去年南京邀请赛的水题,当时找规律过的,看它长得很像数位dp,试了试用数位dp能不能过,d出每位上有多少个1,然后TLE了..然后用规律优化了前4位,勉强过了. 附数位dp代码及找规律代码. #i ...
- xutils使用过程
1,导入xutils的jar包 2,添加xutils需要使用的权限 <uses-permission android:name="android.permission.INTERNET ...
- 发现easyui-accordion一个bug,在ie6、ie7不兼容性问题
当设置全局css文件单元格样式为下面时 td{ word-break: break-all; word-wrap: break-word;} easyui-accordion在ie6.ie7上面会出现 ...
- 原创: 开题报告中摘要部分快速将一段文字插入到word的表格中
开题报告的摘要是表格形式,之前需要一个一个字的敲入,十分不方便修改. 所以百度了一下方法.现总结如下: 达到的效果 1 将这段文字复制粘贴到word中,在word文件中的每一个字与字之间插入空格.如何 ...
- SecureCRT命令行文字和背景颜色设置
先看设置后的效果图,这是个人比较喜欢的配色(整体色调偏暗): 具体设置方法为:
- 项目解析- JspLibrary - part2
banner.jsp 验证用户是否登录 <%String manager=(String)session.getAttribute("manager"); //验证用户是否登 ...
- OA系统部门结构树
public class DepartmentUtils { /** * @param topList 顶级部门列表 * @param removeId 删除部门的id * @return */ pu ...
- jsp页面 直接从地址栏中 获取 参数的方法
function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&am ...
- 【转】 Linux下目录结构
装完Linux,首先需要弄清Linux 标准目录结构 / root — 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home — 存储普通用户的个人文件 ftp — 用户 ...
- AOP 之 6.1 AOP基础(拾陆)
6.1.1 AOP是什么 考虑这样一个问题:需要对系统中的某些业务做日志记录,比如支付系统中的支付业务需要记录支付相关日志,对于支付系统可能相当复杂,比如可能有自己的支付系统,也可能引入第三方支付平 ...