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

PowerMockRunner未被识别,但所有依赖项都已就绪

马华茂
2023-03-14

在我的单元测试中,无法识别PowerMockRunner,尽管我的pom中有我需要的所有依赖项,并且下载了所有必需的jar。我正在尝试测试静态方法。我一直收到错误"类型不匹配:无法从类转换

注意:这不是重复的帖子。我的问题承认运行PowerMock需要某些依赖项,但这个特定的问题询问为什么在添加了所有这些依赖项后,PowerMockRunner.class仍然无法识别。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.vismark</groupId>
    <artifactId>TestingTraining</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>TestingTraining</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mockito/mockito-core -->
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito</artifactId>
            <version>1.6.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>1.6.4</version>
            <scope>test</scope>
        </dependency>


    </dependencies>
</project>

这是我的简单测试:

@RunWith(PowerMockRunner.class)
@PrepareForTest(UserDAO.class)
public class UserDAOTest {

    @Test
    public void createShouldReturnUserId() {
        UserDAO dao = new UserDAO();

        PowerMockito.mockStatic(UserDAO.class);

        when(IDGenerator.generateId()).thenReturn(1);

        int result = dao.create(new User());

        assertEquals(1, result);
    }
}

共有1个答案

林修真
2023-03-14

尝试添加powermock-模块-Junit4-共同

<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4-common</artifactId>
    <version>1.6.4</version>
</dependency>
 类似资料:
  • 'Libraries'>/home/ingo/.m2/repository/se/server/tutorial/web/domainservice/2.0-snapshot/domainservice-2.0-snapshot.jar-GlassFish这样管理其依赖关系似乎有些奇怪,但实际上Glassfish就是这样做的。 我知道Wildfly中的类加载与GlassFish中的不同。 我看到了

  • null 附注:Maven-Build是成功的。因此,Maven正在识别存储库中的包。

  • 我想创建一个.xlsx工作簿。按照教程中的说明和其他Stackoverflow问题(如以下所示) 无法在Apache POI中导入XSSF

  • 我正在寻找关于Gradle依赖关系的信息,类似于这个问题: 什么是Gradle工件依赖关系图命令? 但范围更窄。我想知道Maven用于分析依赖项的功能,以及Gradle是否包含类似的功能。具体地说,Maven可以扫描您的源代码,然后将其与声明的依赖项进行比较,并(粗略地)确定您是否有声明为您没有使用的依赖项和/或您是否正在使用您没有声明的依赖项(由于与图灵完整性相关的问题,这种分析可能包括假阳性/

  • 问题内容: 我正在处理一个表,该表具有一个复合主键,该主键由1NF形式的两个属性(总共10个)组成。 在我的情况下,全功能的依赖项涉及依赖项, 这 依赖于我的主键中的 两个 属性。 部分依赖项依赖于主键中的任一属性。 传递依赖关系涉及功能依赖关系中的两个或多个非关键属性,其中一个非关键属性依赖于我的主键中的某个关键属性。 将可传递的依赖关系从表中拉出,似乎 在 规范化 之后 执行了此操作,但是我的

  • 当前,只有一个依赖项发生更改时,才会触发。 当两个(或所有)依赖项都已更改时,我如何更新/使用它进行回击?