问题标签 [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 回答
44354 浏览

java - 模拟受保护的方法

我想模拟一个继承的受保护方法。我不能直接从java代码调用这个方法,因为它是从另一个包中的类继承的。我找不到一种方法来指定这个方法来存根when(...)

我查看了PowerMockito.when覆盖,这似乎都只用于私有方法!

如何指定受保护的方法?

0 投票
4 回答
31196 浏览

unit-testing - 在 Spock 中使用 GroovyMock 或类似方法模拟静态方法

初来乍到,如有遗漏,敬请见谅。我希望使用 Spock 绕过对静态方法的调用。反馈会很棒

使用 groovy 模拟,我认为我可以通过静态调用但没有找到它。作为背景,我正在改造遗留 Java 中的测试。禁止重构。我正在使用带有 groovy-1.8 的 spock-0.7。

对静态方法的调用与以下形式的实例调用链接在一起:

staticMethod 返回 ClassWithStatic 的实例 instanceMethod 返回方法其余部分所需的 Thing

如果我直接执行全局模拟,它会返回模拟的实例 ok:

但是,如果我从 ClassUnderTest 运行 methodUnderTest:

它抛出一个 ClassWithStatic 的真实实例,该实例在其 instanceMethod 中继续失败。

0 投票
1 回答
589 浏览

java - Why isn't PowerMockito mocking this class properly?

I am using PowerMockito and this is my test:

This test is failing.

Here's what PowerMockitoProduction does:

I expect this code to create a mock HttpClient based on this line in my test:

But it doesn't seem to be effecting my production code. What am I doing wrong?

0 投票
1 回答
4861 浏览

java - 如何使用 PowerMockito 完全模拟一个类?

我正在阅读有关 PowerMockito 的文档,它有两个主要示例:

  1. 模拟静态方法
  2. 部分模拟一个类

但我想知道如何模拟使用new. 我正在寻找 Mockitomock方法的 PowerMockito 版本。这应该能够以某种方式new Foo()在我的生产代码中替换为 Mockito mock(Foo.class)。这是我尝试过的:

这个测试失败了:

这是我的生产代码:

使用我的调试器,我可以看到client不像我预期的那样是模拟的。

我也尝试过使用:

但由于某种原因,这会返回一个未完全构造的模拟。我也试过这个:

但这给了我一条ClassCastException线索。那么,用 PowerMockito 完全模拟一个类的正确方法是什么?

与此示例不同,我尝试模拟 HttpClient 的原因是为了verify以后可以调用它。

0 投票
1 回答
1089 浏览

java - PowerMockito 私有方法 doThrow 存根

--

--

我已经尝试将 any() 切换到 anyObject() 等。但我遇到了存根问题......

错误在哪里?

0 投票
3 回答
6374 浏览

junit - 如何使用 PowerMockito 和 JUnit 模拟 getResourceAsStream 方法?

我尝试模拟getResourceAsStream我在构造函数中调用的方法。

对于模拟框架,我更喜欢 Mockito + PowerMockito。

但是方法thenReturn不返回模拟。我该如何解决?

0 投票
1 回答
514 浏览

mockito - PowerMockito.doAnswer 不产生输出

我一直在尝试实现 PowerMockito.Answer 一段时间但仍然卡住.. 这是代码

它会运行得很好,但不用说 println ......请帮助......!问候

詹姆士

0 投票
1 回答
5582 浏览

java - 模拟 java.nio.file.Paths.get 除了抛出 InvalidPathException 什么都不做

我有两行代码:

无论如何我可以模拟静态方法:

并且只抛出异常 InvalidPathException?

我尝试了powermockito,但它似乎不起作用

整个想法是我试图重现在英文Mac下,Mac默认编码设置为US-ASCII的错误,其中Path path = Paths.get("report_はな.html"); 将抛出此 InvalidPathException。

0 投票
1 回答
671 浏览

java - 使用泛型参数模拟静态方法

我有以下设置:

要测试的类:SeriesOffset扩展BaseDisplayOption

测试类:SeriesOffsetTest

在创建SeriesOffset类的对象以对其进行测试时,其构造函数会进行超级调用,然后进行以下方法调用:

whereLoggingService是一个抽象类,getLog(Class<?> clazz)是一个带有泛型类参数的静态方法。这个方法调用需要被模拟。我用一个名为的类创建了一个模拟实现,ILogImpl这就是我试图测试它的方式:

但是这种方法似乎不起作用,它调用了真正的实现,而不是我需要它调用的模拟实现。错误跟踪如下:错误跟踪

0 投票
2 回答
4955 浏览

java - Mocking a local object inside a method of SUT using Mockito or PowerMocktio

I've class method like below which creates a local object and calls a method on that local object.

When I'm testing myMethod, I want to mock otherClassObject.otherClassMethod to return something of my choice. otherClassMethod does some class to Message Queues and I don't want that in Unit test. So I want to return true when I do otherClassObj.otherClassMethod(). I know I must have used a factory for MyOtherClass instantiation in this case but it's legacy code and I don't want to change any code now. I see that Mockito doesn't provide this facility to mock MyOtherClass in this case but possible with PowerMockito. However, I could not find an example for above scenario but found only for static class. How should I mock local object inside a method of SUT ?

I also referred to some other OS questions like - Mocking methods of local scope objects with Mockito but they were not helpful.

A code example will be of great help.