问题标签 [powermockito]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
750 浏览

java - 为什么模拟私有方法进入方法?

我正在使用 PowerMockito 在我的测试中模拟一个私有方法。

当我运行测试时,我在方法的第二行得到java.lang.reflect.InvocationTargetException了 a ,它看起来像这样:NullPointerExceptionisCaptchaValid

如果我在嘲笑它的行为,为什么要考虑该方法的实现?有没有办法避免这种情况?我需要模拟它的原因是因为我无法提供Captcha对象。

0 投票
1 回答
65 浏览

junit - 为私有方法编写测试用例的问题

我正在尝试在下面的类中为 params 方法编写一个测试用例。

编写 JUnit 测试用例时遇到的问题:

问题是该方法是私有的,并且在它调用超类方法的方法内部。我尝试使用 EasyMock 来抑制对超类构造函数的调用

该文档说,当它们被调用时,我将能够抑制这些方法,并且在这种情况下可以给出指定的输出,即 null。

现在我的问题是如何调用私有方法进行测试?我尝试使用反射 API,但它没有按预期工作。

代码:

当我使用反射 API 调用时,这些方法就像那样被调用,并且超级类方法不会按需要被抑制。

注意:我使用的是旧版应用程序,并且不允许更改我的方法的可见性。

0 投票
1 回答
1063 浏览

java - Power Mockito 测试 ServletOutputStream

我目前正在尝试使用 power mockito 测试打印到 servlet 输出流的内容,但我找不到任何方法。

这是我到目前为止所拥有的

谁能帮我弄清楚如何访问写入 outputStreamMock 的数据?

谢谢

0 投票
3 回答
17328 浏览

junit - Mockito - 您不能在验证或存根之外使用参数匹配器 - 尝试了很多事情但仍然没有解决方案

我有以下代码:

课程开始于:
@RunWith(PowerMockRunner.class) @PrepareForTest({CM9DateUtils.class,DateUtils.class})

我得到org.Mockito.exceptions.InvalidUseOfMatchersException ......你不能在验证或存根之外使用参数匹配器......(错误在失败跟踪中出现两次 - 但都指向同一行)

在我的代码中的其他地方,何时使用完成并且它工作正常。此外,在调试我的代码时,我发现 any(Date.class) 返回 null。

我尝试了以下解决方案,我发现其他人认为这些解决方案很有用,但对我来说它不起作用:

  1. 添加 @After public void checkMockito() { Mockito.validateMockitoUsage(); }

    @RunWith(MockitoJUnitRunner.class)

    @RunWith(PowerMockRunner.class)

  2. 改成 PowerMockito.when(new Boolean(DateUtils.isEqualByDateTime(any(Date.class), any(Date.class)))).thenReturn(false);

  3. 使用anyObject()(它不编译)

  4. 使用 notNull(Date.class) (Date)notNull()

  5. 代替 when(........).thenReturn(false);


    Boolean falseBool=new Boolean(false);
    和_
    when(.......).thenReturn(falseBool);

0 投票
1 回答
4371 浏览

java - PowerMock java.lang.ClassCastException:sun.net.www.protocol.https.HttpsURLConnectionImpl 无法转换为 javax.net.ssl.HttpsURLConnection

我创建了一个HttpsURLConnection基于StackExchange 答案的模拟:

但是,当我使用它时,我看到了一个强制转换异常:

问题在于这段代码:

但是,当我查看源代码时,我看到sun.net.www.protocol.https.HttpsURLConnectionImpl实现javax.net.ssl.HttpsURLConnection

有关如何解决此问题的任何建议?

0 投票
1 回答
840 浏览

junit - Junit - 模拟静态方法

我正在为以下方法编写一个 Junit 测试类“ ServiceImplTest.java ”,但它在尝试 Marshall xmlRequest 时为空。任何人都可以帮我解决这个问题。提前致谢。

ServiceImplTest.java

ServiceImpl.java

RequestXmlBuilder.java

注意:在下面的语句中获取空值

0 投票
1 回答
616 浏览

java - 模拟java对象给出类转换异常

我有一个接口fly和一个duck实现fly.

在我的控制器类中,当我尝试使用以下内容时:

它工作正常,但是在我的junit中,它给出了一个类转换异常。我正在使用 powermockito。

0 投票
3 回答
2137 浏览

java - Junit 模拟私有方法

我需要模拟私有方法并且应该返回 true。在 ServiceImpl-execute() 中,我的请求将转到 else { },它会调用“eventRequest()”。它是一个私有的布尔 eventRequest(),所以每当 evenRequest() 调用我应该返回 true。谁能帮帮我

ServiceImplTest.java

ServiceImpl.java

ResponseBuilder.java

0 投票
2 回答
5006 浏览

junit - How to capture constructor arguments using PowerMockito

I want to Test A, and verify that constructor of B is getting called for expected values of argType1 and argType2.

How can i do this using PowerMockito?

Is there a way to pass argumentCaptor like this:

if this do this, argType1Captor gets both the values

0 投票
2 回答
15404 浏览

testng - PowerMockito not working : -java.lang.NoClassDefFoundError: org/mockito/internal/creation/CglibMockMaker

I am trying to mock the static method of CouchbaseCluster.create() using powermockito. Here is my test class.

My project pom includes the following dependencies:

I am getting this error log when I run the test through TestNG framework.

java.lang.NoClassDefFoundError: org/mockito/internal/creation/CglibMockMaker at org.powermock.api.mockito.internal.mockmaker.PowerMockMaker.(PowerMockMaker.java:40) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:379) at org.mockito.internal.configuration.plugins.PluginLoader.loadImpl(PluginLoader.java:61) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:24)