问题标签 [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.
java - 使用 Powermockito 在 junit 中模拟私有方法
我需要模拟以下方法调用carBookBuilder.setTrip(protoConverter.convertTrip(carBookRequest, location))
,但是当carBookBuilder.setTrip(protoConverter.convertTrip(carBookRequest, location))
调用时我应该只返回模拟tripdetails并跳过protoConverter.convertTrip(carBookRequest, location)
方法调用。
ProtoRequestAdapterTest.java
ProtoRequestAdapter.java
java - 如何使用 powermock 或任何模拟工具模拟超类的 java 方法?
超级班
执行
我需要测试getMyData()
方法,我想模拟/抑制createQuery()
方法,因为它会在测试环境中失败。
谢谢!
java - 在参数上调用方法时,PowerMockito 模拟静态方法失败
我正在尝试测试一个使用具有许多静态方法的计算器类的类。我已经以类似的方式成功地嘲笑了另一个班级,但事实证明这个班级更加顽固。
似乎如果模拟方法包含对传入参数之一的方法调用,则不会模拟静态方法(并且测试中断)。删除内部调用显然不是一种选择。我在这里有什么明显的遗漏吗?
这是一个压缩版本,其行为方式相同......
这是测试...
这个问题似乎有些混乱,所以我设计了一个更“现实”的例子。这增加了一层间接性,因此看起来我没有直接测试模拟方法。SmallCalculator 类没有改变:
这是新的测试类...
java - 在不初始化类的情况下测试方法
我对单元测试很陌生,我想知道是否有一种方法可以在不初始化类的情况下测试方法。我问的原因是因为在构造函数中传递了很多对象,这意味着很多模拟存根,而从彻底检查来看methodToTest
似乎没有使用任何对象属性。这不是我的代码,否则该方法可以转换为静态。
android - PowerMockito.whenNew 不适用于 android 的 Intent 类
我正在尝试使用模拟 Intent 对象,但是当使用 PowerMockito 中的 whenNew 时,我无法模拟构造函数。我已经尝试了所有可能的参数组合,但它不起作用。
testing - PowerMockito.whenNew 不工作
更新。最后检查工作示例。
我有一堂课:
和一个测试:
但它仍然创建了一个真正的类并打印:
类XYZ{}
我究竟做错了什么?
PS Maven 部门:
工作示例:
java - 使用 powermockito 模拟 URL 类时出现问题
无需详细说明这样做的优点,只需要帮助找出以下测试代码不起作用的原因!在这一点上,这更像是一种学习练习。
只是尝试使用 PowerMockito 为 URL 类创建一个模拟,并为它定义一些行为。这是代码:
抛出以下异常堆栈。特别是这个测试的linke 39,这是我拥有的: PowerMockito.when(mockURL.openConnection()).thenReturn(mockConn); 抛出错误。请注意,URL 是最后一课,我正在使用 Powermockito。
unit-testing - mockito 和 powermockito 在模拟 groovy 测试文件时抛出 AbstractMethodError
我正在尝试模拟最终类 ( java.net.URL
) 并在一个非常简单的 Wrapper 类中使用它:ClassToTest.groovy。测试器类在下面进一步给出,是:ClassToTestTester.groovy。
如您所见,我在这里尝试完成的所有工作都是通过一个(非常)简单的测试工作流程,其中包括
- 定义一个模拟(mockURL)
- 定义一个方法存根
getUserInfo
- 测试方法:
testClass.returnUserInfo()
不幸的是,在被测类(也称为被测系统或 SUT)ClassToTest
中,在运行时, url.getUserInfo()
返回一个空字符串。这里发生的是在@Test
方法中作为构造函数传递的 mockURL 对象没有被持久化。相反,类加载器将一个新的 URL 实例加载到 SUT 中。我被引导相信这是因为我也没有得到NullPointerException
!我得到的只是一个空字符串,userInfo
否则应该说'apil.tamang'。
此外,使用 .java 扩展名编写的相同文件可以按预期工作。即运行相同的ClassToTestTester
通行证。
我在这里做错了什么?我错过了一个明显的错误吗?
java - 当我将参数与 PowerMockito 模拟静态方法一起使用时,为什么会出现参数类型不匹配?
我正在使用 PowerMockito 模拟对静态类的调用,并且该方法的参数是对象数组。所以调用应该是这样的:
但是当我尝试像这样使用 PowerMockito 进行模拟时:
这在 Eclipse 中给了我一个警告:
MyObject[] 类型的参数应显式转换为 Object[] 以调用 PowerMockito 类型的 varargs 方法 when(Class, String, Object...)。也可以将其转换为 Object 以进行 varargs 调用但是当我像这样转换为 Object 时:
执行此方法时我没有返回该字符串,我假设这是因为 Object 类型参数导致该方法无法被识别,因为它期望 MyObject 类型的东西作为参数。
关于如何在不强制转换为 Object 的情况下传递非原始数据或如何通过强制转换识别方法的任何想法?
java - 如何将模拟服务注入动态创建的类
所以我有一个@Spy
执行新对象创建的方法,它与 -> (Method to Object) 的重构模式有关,但是,新创建的实例没有注入其依赖服务。
代码显然不是我在这个论坛上发布的财产,但在伪逻辑中,我会尝试在下面传达信息:
尽管TestObject
从其 Abstract 父类继承了此服务,并且直接在testObj
其中的任何用法specialistServiceMock
都不是 null 并且可以正常工作。
现在,当testObj
点击新RefactoredMethodToObject()
类并调用它的invoke()
方法时,它需要specialistServiceMock
做一些事情,但specialistServiceMock
它是空的。
我很欣赏这看起来超出了 Mockito 的能力,我手头也有 PowerMock。
所以简而言之,我需要specialistServiceMock
在动态创建的RefactoredMethodToObject()
.
欢迎任何想法,如果您需要更多信息,请告诉我。谢谢