gpt4 book ai didi

java - 如何用私有(private)方法调用 Mockito.given

转载 作者:行者123 更新时间:2023-11-30 06:54:39 24 4
gpt4 key购买 nike

我使用 ReflectionUtils 找到了我的方法

Method myMethod=ReflectionUtils.findMethod(myMockClass.getClass(), "myMethod", myArg.class)

现在我想驱动这个方法返回一个指定的值。通常,如果 myMethod 是公开的,我会写成例如

given(myMockClass.myMethod(myArg)).willReturn(5)

但是有没有可能用private myMethod来做呢?
当我打电话时

given(myMethod.invoke(myClass, myArg)).willReturn(5)    

我有 java.lang.reflect.InvocationTargetException。我读过有关 PowerMock 的信息,但我想知道仅使用 Mockito 是否可行

编辑:

public int A(args){
int retValue;
... some code here, the most important part
retValue=..
if(some case)
retValue= myMethod(args);
return retValue;
}

最佳答案

考虑使用 Guava's @VisibleForTesting注释在这里。基本上,只需将方法的可见性提高到测试它所需的最低级别。

例如,如果您的原始方法是:

private int calculateMyInt() {
// do stuff
return 0;
}

你的新方法是:

@VisibleForTesting // package-private to call from test class.
int calculateMyInt() {
// do stuff
return 0;
}

关于java - 如何用私有(private)方法调用 Mockito.given,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36175244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com