jjzjj

PowerMock

全部标签

java - 测试是否调用了另一个方法

所以我确定那里有类似的东西,但我已经搜索了一个小时,但没有找到我要找的东西。假设我有一个看起来像这样的类:publicclassMyClass{publicvoidmyMethod(booleanshouldCallOtherMethod){if(shouldCallOtherMethod){otherMethod();}}publicvoidotherMethod(){System.out.println("Called");}}如何使这样的东西起作用?@TestpublicvoidshouldCallMethod(){MyClassmyClass=newMyClass();myCl

java - 使用 Jacoco 对使用 Powermock 编写的测试类进行单元测试覆盖

我正在尝试在jenkins的sonarqube仪表板上获取代码覆盖率报告。代码覆盖率报告即将发布,但仅显示4.6%的覆盖率。在调查中,我发现使用PowerMocks编写的测试类被跳过了。在进一步调查中,我发现“JaCoCo不能很好地处理动态修改/创建的类(这是powermock的工作方式)。这是一个已知的限制,我们目前无能为力”。是否有解决此问题的方法,以便我也可以为使用PowerMocks编写的测试类获得适当的代码覆盖率。 最佳答案 简单的回答:不,没有。长答案-归结为这些选项:查看此Wikipage由PowerMock团队提供-

java - PowerMock 可以为测试用例实例化一个内部类吗?

我正在尝试用多个私有(private)类测试一个类(是的,我知道这通常被认为是可测试性的不良做法,但这个问题与设计原则无关)。我的类(class)看起来像这样:publicclassEnclosingClass{...privateclassInnerClassimplementsInnerClassType{publicInnerClass(){/*dostuff*/}publicintInnerClassMethod();}}InnerClassType是一个公共(public)接口(interface)我尝试通过以下方式使用powermock实例化类:Classclazz=Whi

java - 如何模拟私有(private) dao 变量?

我有一个dao.create()调用,我想在测试方法时对其进行模拟。但是我还是遗漏了一些东西,因为我仍然在接受NPE。这里有什么问题?classMyService{@InjectprivateDaodao;publicvoidmyMethod(){//..dao.create(object);//}}如何模拟dao.create()调用?@RunWith(PowerMockRunner.class)@PrepareForTest(DAO.class)publicvoidMyServiceTest{@TestpublicvoidtestMyMethod(){PowerMockito.mo

java - 如何为 final类创建动态代理?

简而言之:1.我有一些最终类,我想为它创建动态代理。我该怎么做?2.我可以将MethodHandle转换为Method吗?详细信息首先,是否存在将MethodHandle转换为Method的API?类似于java.lang.invoke.MethodHandlespublicMethodHandleunreflect(Methodm)throwsIllegalAccessException;但是相反的方向呢?假设我想创建动态java.lang.reflect.Method。它被定义为publicfinalclassMethodextendsAccessibleObjectimpleme

java - 模拟静态方法

我做了一些研究,发现PowerMock能够模拟静态Java方法。有人可以(从技术上)解释PowerMock与JUnit和其他不能或不能做的事情有什么不同吗?还有为什么静态方法在尝试模拟时会(曾经)引起问题?谢谢 最佳答案 http://blog.jayway.com/2009/05/17/mocking-static-methods-in-java-system-classes/为了模拟实例方法,您可以简单地在子类中覆盖它。你不能用静态方法做到这一点,因为没有“静态多态性”。Powermock可以做到这一点,因为它使用字节码,而其他

java - 通过 Maven 的 PowerMockRunner 使用 Mockito 运行 Junit & PowerMock

我无法通过Maven运行Powermock。我是用于驱动jUnit测试的PowerMockMockito和PowerMockRunner。这是测试:@RunWith(PowerMockRunner.class)@PrepareForTest({UserLocalServiceUtil.class,ExpandoBridge.class})publicclassAlertNotificationsTest{//...我没有为运行测试配置任何特殊的东西。我的pom引用了以下部门:org.mockito|模拟所有|1.8.0联合|联机|4.6.0org.powermock.modules|p

java - 是否可以使用 PowerMock 来模拟新文件的创建?

我想介绍一个逻辑,即创建带有单元测试的文件。是否可以模拟File类并避免实际创建文件? 最佳答案 模拟构造函数,就像在这个示例代码中一样。不要忘记将调用“newFile(...)”的类放入@PrepareForTestpackagehello.easymock.constructor;importjava.io.File;importorg.easymock.EasyMock;importorg.junit.Assert;importorg.junit.Test;importorg.junit.runner.RunWith;impo

java - 使用 PowerMockito 模拟私有(private)方法

我正在使用PowerMockito来模拟私有(private)方法调用(privateApi),但它仍然会进行privateApi调用,而这又会进行另一个thirdPartCall。当thirdPartyCall抛出异常时,我遇到了问题。据我所知,如果我在模拟privateApi,它不应该进入方法实现细节并返回模拟响应。publicclassMyClient{publicvoidpublicApi(){System.out.println("InpublicApi");intresult=0;try{result=privateApi("hello",1);}catch(Excepti

java - 使用 Mockito 模拟 Joda DateTime 方法

我希望millis返回指定的值。publiclongmyMethod(){DateTimenowDateTime=newDateTime(DateTimeZone.UTC);longmillis=nowDateTime.getMillis();System.out.println(millis);}我试过了,但没有成功。@RunWith(PowerMockRunner.class)@PrepareForTest({DateTime.class})@PowerMockIgnore({"javax.crypto.*","javax.management*"})......publicvoi