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

在基本Java maven项目中使用存根

方飞白
2023-03-14

我有一个基本的maven项目,其文件夹结构为:-main和-test目录。

我在主源目录中有一个包,它由几个类组成,比如a.class,B.class和c.class,它们都在同一个包下。所有类之间都有依赖关系。为了进行适当的单元测试,并减少每个类的依赖关系,我编写了每个a、b和c类的存根类,将它们定义为具有相同的包,并将它们放在测试源目录中。然后我运行:mvn测试

很好,现在首先从类路径中找到并使用存根,但我想修改类路径(动态?)因此,当测试类a时,我需要原始的a.class和用于b.class和c.class的存根。类似地,在测试类b时,我需要原始的类b和用于a.class和c.class的存根。

我如何使用Maven和JUnit来实现这一点?

这在Java中有点令人沮丧,因为在C++中,可以使用单元测试头文件中的makefile源路径和用户定义的include路径来强制首先找到存根,然后显式地向要测试的原始类添加include。

共有1个答案

潘琨
2023-03-14

就像@Khmarbaise已经指出你走错了路。在Java中,如果要测试静态方法,最好使用Mockito和PowerMock这样的模拟库。

这些库帮助您编写现有类的存根,而无需修改类本身。检查Maven Central以查找Mockito。您可以通过以下方式将其包含在maven中

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>1.10.19</version>
    <scope>test</scope>
</dependency>

然后使用JUnit,您将为现有的类编写模拟。有很多关于Mockito的教程。

 类似资料:
  • 问题内容: 是否有Maven的“阶段”或“目标”来简单地执行Java类的主要方法?我有一个项目,希望通过简单地执行诸如“ mvn run”之类的操作来进行手动测试。 问题答案: 请参阅exec maven插件。你可以使用以下命令运行Java类: 调用就像插件配置在中一样简单。Mojohaus上的插件站点上有一个更详细的示例。

  • 针对API14及以上版本的android项目使用Java1.8有什么问题吗?我找不到任何有关这方面的文档,希望使用s。 编辑:主要集中在选项(不重复)。

  • 我正在使用maven构建我的java项目,但未能成功。因此,任何人都可以告诉我pom中需要的基本标记及其相应值。xml来构建项目?此外,如何从命令行手动添加Storm依赖项? 我的项目目录结构: 最初,我尝试了Maven Link并创建了< code>pom.xml,如下所示: 但是,之后我使用< code>mvn package。它抛出这个异常: 之后,我使用这个链接Maven link 2并创

  • 一个Gradle项目的构建过程定义在build.gradle文件中,位于项目的根目录下。

  • 我们的机器上有Maven。我们使用的是Maven 2.2.1和CentOS 6.0。当我们使用以下命令创建基础项目时 mvn原型:创建-e-Darch etypeGroupId=com.jivesoftware.maven-Darch etypeartifactId=maven-jive-plugin-ArchetypeVersion=5.0.2-SNAPSHOT-Dgroup pId=com.d

  • 直接集成 GoJavaNode.jsPython 名称 描述 模型 策略 VMware Harbor VMware的开源可信云本地注册表项目,用于存储、签名和扫描内容。 Code Beego ORM Intel RMD 英特尔的资源管理守护进程。 .conf .csv VMware Dispatch 用于部署和管理无服务器风格应用程序的框架。 Code Code Skydive 一个开源的实时网络