我正在尝试模拟一个接口(interface)。publicinterfaceFlowCopyParamsBusinessManager{ListfindByAppli(Stringapplication,StringsourcePattern)throwsFlowCopyParamsBusinessException;在我的代码中,当我调用此方法时findByAppli,我想返回一个FlowCopyParams列表。ListlstFlowCopyParams=flowCopyParamsBusinessManager.findByAppli("TOTO","TATA);这是我在类测试中
我们在少数历史项目中使用了PowerMock。不幸的是PowerMock相当dead并且与Java11不兼容。我们正在使用mockStatic()。是的,我们知道它被认为是有害的-它在遗留代码中,我们现在不想重写这些类......是否有任何选项可以调整PowerMock以支持Java11?或者是否可以轻松地用其他一些Java11兼容框架替换它?(Mockito不支持mockStatic) 最佳答案 在一年没有发布之后,PowerMock中的事情真的发生了变化。PowerMock2.0.0-RC1发布。以及PowerMockito2.
我正在尝试在现有的JUnit测试中使用我的第一个PowerMockito[PowerMock+Mockito]模拟。当我只存在类级注释@PrepareForTest(以及@RunWith(PowerMockRunner.class)时,我已经缩小了范围,但没有任何实际的模拟代码),我得到java.lang.NoClassDefFoundError:javassist/NotFoundException:如果我注释掉@PrepareForTest,以及任何实际的模拟代码以消除混杂变量,该错误不会发生;如果我只对@PrepareForTest取消注释,则会发生错误。所以我相信这可以将问题缩
我需要使用mockito和powermock模拟一个不带参数的私有(private)void方法。该方法属于一个spy实例。我知道我需要这样做的事实表明代码不好,但我正在处理一个旧项目,将单元测试从一个测试框架转换为另一个测试框架。如果有人有任何建议,我们将不胜感激。谢谢!到目前为止我已经试过了:PowerMockito.doNothing().when(Whitebox.invokeMethod(spy,"method",null));但是我得到这个错误:Nomethodfoundwithname'method'withparametertypes:[]
为了测试我编写的私有(private)方法之一,我需要模拟一个Singleton。在使用PowerMockito测试了几种方法之后:PowerMockito.mockStatic(UtilDatabaseSoldeAutoCdeCommon.class);Mockito.when(UtilDatabaseSoldeAutoCdeCommon.getInstance()).thenReturn(mockDatabase);我永远无法mock这门课。因此我无法像在每个方法中一样测试我的方法,我访问数据库。UtilDatabaseSoldeAutoCdeCommon定义如下:publiccl
我需要使用PowerMockito来测试是否调用了特定的静态方法。我正在使用以下PowerMockito和JUnit库...powermock-mockito-1.6.2-full.jarjunit-4.12.jar我在使PowerMockito.verifyStatic()方法正常工作时遇到问题。在下面的代码示例中,我尝试使用@PrepareForTest和mockStatic(),并尝试排除它们。在代码示例中,我包含了它们。测试类:importorg.powermock.api.mockito.PowerMockito;importorg.powermock.core.classl
我有以下代码,它从数据库中获取当前计数器值。然后它更新数据库中的计数器,然后再次检索值。intcurrent=DBUtil.getCurrentCount();DBUtil.updateCount(50);//itupdatesthecurrentcountbyadding50intlatest=DBUtil.getCurrentCount();我想以第一次调用应返回100而第二次调用应返回150的方式模拟静态方法。如何使用PowerMockito实现此目的?我正在使用TestNG、Mockito以及PowerMock。 最佳答案
我正在尝试测试一个使用带有许多静态方法的计算器类的类。我已经以类似的方式成功地mock了另一个类(class),但事实证明这个类(class)更加顽固。似乎如果模拟方法包含对传入参数之一的方法调用,则静态方法不会被模拟(并且测试中断)。删除内部调用显然不是一个选项。我在这里明显遗漏了什么吗?这是一个精简版,其行为方式相同......publicclassSmallCalculator{publicstaticintgetLength(Stringstring){intlength=0;//length=string.length();//Uncommentthislineandthem
我正在使用PowerMockito来模拟私有(private)方法调用(privateApi),但它仍然会进行privateApi调用,而这又会进行另一个thirdPartCall。当thirdPartyCall抛出异常时,我遇到了问题。据我所知,如果我在模拟privateApi,它不应该进入方法实现细节并返回模拟响应。publicclassMyClient{publicvoidpublicApi(){System.out.println("InpublicApi");intresult=0;try{result=privateApi("hello",1);}catch(Excepti
我在使用powermockito(2.0.0-beta5)验证静态方法在调用不同(也是静态)方法时被调用了一定次数时遇到问题。这些类已准备好在我的测试文件的顶部进行测试相关的代码片段是:mockStatic(Tester.class);when(Tester.staticMethod(anyString(),anyString())).thenAnswer(newFirstResponseWithText());OtherClass.methodThatCallsTesterStaticMethod("","","",false,"");verifyStatic(Tester.clas