powermockito “mock public 方法内部 Private方法的问题”

我需要测试的方法是 public 方法:

public ResponseResult subscribe(SysSubscription sysSubscription) throws JsonGenerationException, JsonMappingException, IOException {
LOGGER.debug("=====================subscribe Subscription=======================");
ResponseResult result = new ResponseResult();

if (checkNotNull(sysSubscription)) {
return handleSubscribe(sysSubscription, result);
}
return result;
}

但是在handleSubscribe内部会调用 private 方法:

private ResponseResult createResponseResultByResponse(Response response, ResponseResult responseResult) {

试了 powermockito spy 来 partially mock private 方法发现没用。 因为这是两层的public 方法。

只好把方法改成

protected ResponseResult createResponseResultByResponse(Response response, ResponseResult responseResult) {

时间: 2024-10-12 22:36:27

powermockito “mock public 方法内部 Private方法的问题”的相关文章

关于c++中public & private方法调用问题

class IDNoIdentifier { public: IDNoIdentifier(); ~IDNoIdentifier(); typedef vector<cv::Rect> CvRectVectorType; bool Init(); bool Cleanup(); bool HandleData(const Mat& rawImg,string& sNoInfo,string& sError); private: bool IDNoLocation(con

运行时在方法内部获取该方法的名称及参数相关信息

package com.dongjak.scripts.java.反射; import java.lang.reflect.Method; import net.sf.json.JSONObject; import com.dongjak.annotations.LogTarget; /** * * @author dongjak * * */ public class 运行时在方法内部获取该方法的名称及参数相关信息 { public static void main(String[] args

Java的final关键字与String的内部比较方法

最近抽了点时间温故,一些零零散散的问题还是整理了起来.我决定把一些曾经坑过自己的问题写成博客文章,给学弟学妹们一个警示吧. 今天的故事从一个例子开始: @Test public void testFinal() { String s1="happyBKsOffer"; String s2="happyBKs"; final String s3="happyBKs";//s3.replace("h", "H"

java构造器内部多态方法

/** * Created by Administrator on 2017/3/7. */ /** * @author zhenghong * @date 2017-03-07-21:21 **/public class TestC { public static void main(String []args) { new Graph(5); }}class Grp{ void draw() { System.out.println("draw...."); } Grp() { d

有一个NSStirng类型,retain方式声明的name属性的setter方法内部每一行代码的作用?

- (void)setName:(NSString *)name { 判断原有对象和新对象是否是同一个对象,如果是同一个,就没有必要再重新赋值,否则会先release 再retain,就会变成野指针 if (_name != name) { 释放保有之前对象的所有权 [_name release]; 让实例变量 _name保有新的对象的所有权 _name = [name retain]; } } 有一个NSStirng类型,retain方式声明的name属性的setter方法内部每一行代码的作用

算法 - 内部排序方法总结

各种排序方法的性能比较 排序方法 最好时间复杂度 平均时间复杂度 最坏时间复杂度 空间复杂度 稳定性 直接插入排序 O(n) O(n2) O(n2) O(1) 稳定 简单选择排序 O(n2) O(n2) O(n2) O(1) 不稳定 冒泡排序 O(n) O(n2) O(n2) O(1) 稳定 希尔排序 - O(n1.25) - O(1) 不稳定 快速排序 O(nlog2n) O(nlog2n) O(n2) O(log2n)~O(n) 不稳定 堆排序 O(nlog2n) O(nlog2n) O(n

定义在构造函数内部的方法,会在它的每一个实例上都克隆这个方法;定义在构造函数的prototype属性上的方法会让它的所有示例都共享这个方法,但是不会在每个实例的内部重新定义这个方法. 如果我们的应用需要创建很多新的对象,并且这些对象还有许多的方法,为了节省内存,我们建议把这些方法都定义在构造函数的prototype属性上。

定义在构造函数内部的方法,会在它的每一个实例上都克隆这个方法;定义在构造函数的prototype属性上的方法会让它的所有示例都共享这个方法,但是不会在每个实例的内部重新定义这个方法. 如果我们的应用需要创建很多新的对象,并且这些对象还有许多的方法,为了节省内存,我们建议把这些方法都定义在构造函数的prototype属性上.当然,在某些情况下,我们需要将某些方法定义在构造函数中,这种情况一般是因为我们需要访问构造函数内部的私有变量.

在方法内部获取调用自己方法的“名称”

static void a2() { StackFrame frame = new StackFrame(1); //偏移一个函数位,也即是获取当前函数的前一个调用函数 MethodBase method = frame.GetMethod(); //取得调用函数 Console.WriteLine(method.Name); //a1 } static void a1() { a2(); } 在方法内部获取调用自己方法的"名称"

spring aop无法拦截类内部的方法调用

1.概念 拦截器的实现原理就是动态代理,实现AOP机制.Spring 的代理实现有两种:一是基于 JDK Dynamic Proxy 技术而实现的:二是基于 CGLIB 技术而实现的.如果目标对象实现了接口,在默认情况下Spring会采用JDK的动态代理实现AOP 2.问题 在类C中,方法A调用方法B, B方法被AOP拦截.(可能是方法B上在另外的@Aspect切面定义上了切点/也可能是加了@Transactional事务注解,底层原理也是AOP实现),最终A->B ,B并不会触发AOP. 3.