当前位置: 首页 > 知识库问答 >
问题:

PowerMock找不到PrepareForTest批注

洪子晋
2023-03-14

我正在为Java类编写测试用例,这是我第一次使用PowerMock框架。我添加到pom中的依赖项。下面显示了xml以及完整的错误消息。当我尝试在测试类中使用@PrepareForTest注释时,它没有导入任何东西。我检查了powermock-coreJAR内部,没有找到与import-org对应的任何内容。powermock。果心类加载器。注释。准备工作

我跟踪了我应该使用哪些Maven工件来导入PowerMock?,但它不起作用。

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>           
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.10.19</version>
        <scope>test</scope>
    </dependency>
   <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-api-support</artifactId>
         <version>1.7.3</version>
   </dependency>
   <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito2</artifactId>
        <version>1.7.3</version>
        <scope>test</scope>
    </dependency>    
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>1.7.3</version>
        <scope>test</scope>
    </dependency>
</dependencies>

JAVAlang.NoSuchMethodError:org。莫基托。内部的汉德勒。莫克汉德勒工厂。创造摩卡‌ndler(Lorg/mockito/m)‌​ock/MockCreationSett‌​()Lorg/mockito/i‌​内部/内部模拟‌​处理者;在org。powermock。应用程序编程接口。莫基托。内部的模仿创造。DefaultMockC‌雷托。创造方法‌​位置控制(Def)‌​aultMockCreator。JAVA‌​:114)


共有1个答案

满雨石
2023-03-14

我尝试了您的代码,它对我有用。您尝试构建应用程序了吗?

mvn clean install

您应该检查是否正在导入测试:

import org.powermock.core.classloader.annotations.PrepareForTest;

关于第二个错误:您应该将powermock版本1.7.1与junit 4.4或更高版本一起使用。

https://github.com/powermock/powermock/wiki/Mockito-2-Maven

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-support</artifactId>
            <version>1.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito2</artifactId>
            <version>1.7.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>1.7.1</version>
            <scope>test</scope>
        </dependency>
 类似资料:
  • 这就是我的情况,我有两个非常简单的类: 以及: } 我想用Mockito测试类A的方法。因此,我想模拟类B的实例,并在实例化类B时将其提供给A。出于隔离原因,我根本不希望达到b.do()。 我知道我可以通过创建以下unittest来实现这种行为: 这导致输出: 所以这工作!然而,我现在的问题是我们使用Jococo插件进行测试覆盖率。Jococo不涵盖使用@准备测试(A. class)语句测试的代码

  • 我想从带有的URL中获取RSS代码,如果我在get注释中静态输入URL,一切正常,但使用动态URL时,我会得到一个错误。 我的接口服务: 并调用getRss方法: 我得到以下错误: 注意:我将下面一行添加到中,但它不起作用

  • 我们在一些历史项目中使用PowerMock。不幸的是,PowerMock已经死了,并且与Java11不兼容。 我们正在使用mockStatic()。是的,我们知道它被认为是有害的——它存在于遗留代码中,我们不希望现在就重写这些类。。。 是否有任何选项如何调整PowerMock以支持Java11?或者是否可以轻松地将其替换为其他Java11兼容的框架?(Mockito不支持mockStatic)

  • PowerMock 也是一个单元测试模拟框架,它是在其它单元测试模拟框架的基础上做出的扩展。通过提供定制的类加载器以及一些字节码篡改技巧的应用,PowerMock 现了对静态方法、构造方法、私有方法以及 Final 方法的模拟支持,对静态初始化过程的移除等强大的功能。因为 PowerMock 在扩展功能时完全采用和被扩展的框架相同的 API, 熟悉 PowerMock 所支持的模拟框架的开发者会发

  • 我是一名学习使用jsp和Servlet构建Web应用程序的学生。一个月以来,我的Web应用程序项目一直运行良好,但今天它的行为突然变得奇怪了。当我提交jsp页面时,它无法找到我的servlet。我已经使用servlet注释来映射请求。 以下是我的JSP:- 以下是我的servlet:- 以下是我的控制台日志:-

  • 问题内容: 我正在运行Windows 8,但无法使javac正常工作。 我已将环境变量中的PATH设置为 我尝试过是否使用’;’ 但无济于事。 我最近在桌面上添加了这个问题;工作,但不是这种情况。 我确保javac确实也存在于bin中。 关于修复的任何建议将不胜感激。 编辑echo%PATH%给出: 确切的错误是:无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 至