问题标签 [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 投票
2 回答
206 浏览

java - 使用 Powermockito 在 junit 中模拟私有方法

我需要模拟以下方法调用carBookBuilder.setTrip(protoConverter.convertTrip(carBookRequest, location)),但是当carBookBuilder.setTrip(protoConverter.convertTrip(carBookRequest, location))调用时我应该只返回模拟tripdetails并跳过protoConverter.convertTrip(carBookRequest, location)方法调用。

ProtoRequestAdapterTest.java

ProtoRequestAdapter.java

0 投票
2 回答
214 浏览

java - 如何使用 powermock 或任何模拟工具模拟超类的 java 方法?

超级班

执行

我需要测试getMyData()方法,我想模​​拟/抑制createQuery()方法,因为它会在测试环境中失败。

谢谢!

0 投票
4 回答
38461 浏览

java - 在参数上调用方法时,PowerMockito 模拟静态方法失败

我正在尝试测试一个使用具有许多静态方法的计算器类的类。我已经以类似的方式成功地嘲笑了另一个班级,但事实证明这个班级更加顽固。

似乎如果模拟方法包含对传入参数之一的方法调用,则不会模拟静态方法(并且测试中断)。删除内部调用显然不是一种选择。我在这里有什么明显的遗漏吗?

这是一个压缩版本,其行为方式相同......

这是测试...

这个问题似乎有些混乱,所以我设计了一个更“现实”的例子。这增加了一层间接性,因此看起来我没有直接测试模拟方法。SmallCalculator 类没有改​​变:

这是新的测试类...

0 投票
6 回答
5709 浏览

java - 在不初始化类的情况下测试方法

我对单元测试很陌生,我想知道是否有一种方法可以在不初始化类的情况下测试方法。我问的原因是因为在构造函数中传递了很多对象,这意味着很多模拟存根,而从彻底检查来看methodToTest 似乎没有使用任何对象属性。这不是我的代码,否则该方法可以转换为静态。

0 投票
1 回答
864 浏览

android - PowerMockito.whenNew 不适用于 android 的 Intent 类

我正在尝试使用模拟 Intent 对象,但是当使用 PowerMockito 中的 whenNew 时,我无法模拟构造函数。我已经尝试了所有可能的参数组合,但它不起作用。

0 投票
1 回答
9234 浏览

testing - PowerMockito.whenNew 不工作

更新。最后检查工作示例。


我有一堂课:

和一个测试:

但它仍然创建了一个真正的类并打印:

类XYZ{}

我究竟做错了什么?

PS Maven 部门:


工作示例:

0 投票
3 回答
5080 浏览

java - 使用 powermockito 模拟 URL 类时出现问题

无需详细说明这样做的优点,只需要帮助找出以下测试代码不起作用的原因!在这一点上,这更像是一种学习练习。

只是尝试使用 PowerMockito 为 URL 类创建一个模拟,并为它定义一些行为。这是代码:

抛出以下异常堆栈。特别是这个测试的linke 39,这是我拥有的: PowerMockito.when(mockURL.openConnection()).thenReturn(mockConn); 抛出错误。请注意,URL 是最后一课,我正在使用 Powermockito。

0 投票
0 回答
437 浏览

unit-testing - mockito 和 powermockito 在模拟 groovy 测试文件时抛出 AbstractMethodError

我正在尝试模拟最终类 ( java.net.URL) 并在一个非常简单的 Wrapper 类中使用它:ClassToTest.groovy。测试器类在下面进一步给出,是:ClassToTestTester.groovy。

如您所见,我在这里尝试完成的所有工作都是通过一个(非常)简单的测试工作流程,其中包括

  1. 定义一个模拟(mockURL)
  2. 定义一个方法存根getUserInfo
  3. 测试方法:testClass.returnUserInfo()

不幸的是,在被测类(也称为被测系统或 SUT)ClassToTest中,在运行时, url.getUserInfo()返回一个空字符串。这里发生的是在@Test方法中作为构造函数传递的 mockURL 对象没有被持久化。相反,类加载器将一个新的 URL 实例加载到 SUT 中。我被引导相信这是因为我也没有得到NullPointerException!我得到的只是一个空字符串,userInfo否则应该说'apil.tamang'。

此外,使用 .java 扩展名编写的相同文件可以按预期工作。即运行相同的ClassToTestTester通行证。

我在这里做错了什么?我错过了一个明显的错误吗?

0 投票
2 回答
2100 浏览

java - 当我将参数与 PowerMockito 模拟静态方法一起使用时,为什么会出现参数类型不匹配?

我正在使用 PowerMockito 模拟对静态类的调用,并且该方法的参数是对象数组。所以调用应该是这样的:

但是当我尝试像这样使用 PowerMockito 进行模拟时:

这在 Eclipse 中给了我一个警告:

MyObject[] 类型的参数应显式转换为 Object[] 以调用 PowerMockito 类型的 varargs 方法 when(Class, String, Object...)。也可以将其转换为 Object 以进行 varargs 调用但是当我像这样转换为 Object 时:

执行此方法时我没有返回该字符串,我假设这是因为 Object 类型参数导致该方法无法被识别,因为它期望 MyObject 类型的东西作为参数。

关于如何在不强制转换为 Object 的情况下传递非原始数据或如何通过强制转换识别方法的任何想法?

0 投票
0 回答
293 浏览

java - 如何将模拟服务注入动态创建的类

所以我有一个@Spy执行新对象创建的方法,它与 -> (Method to Object) 的重构模式有关,但是,新创建的实例没有注入其依赖服务。

代码显然不是我在这个论坛上发布的财产,但在伪逻辑中,我会尝试在下面传达信息:

尽管TestObject从其 Abstract 父类继承了此服务,并且直接在testObj其中的任何用法specialistServiceMock都不是 null 并且可以正常工作。

现在,当testObj点击新RefactoredMethodToObject()类并调用它的invoke()方法时,它需要specialistServiceMock做一些事情,但specialistServiceMock它是空的。

我很欣赏这看起来超出了 Mockito 的能力,我手头也有 PowerMock。

所以简而言之,我需要specialistServiceMock在动态创建的RefactoredMethodToObject().

欢迎任何想法,如果您需要更多信息,请告诉我。谢谢