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

防止在JUnit4.x中使用Hamcrest

杨昆
2023-03-14

我目前正在使用JUnit4.x和AssertJ。我想确保没有使用Hamcrest偷偷摸摸的。但是,Hamcrest核心是JUnit运行时必需的依赖项,请参见JUnit问题#1429:JUnit4.12关于org/Hamcrest/selfdescription#1429,因此直接从pom.xml中排除依赖项或调整maven-surefire-plugin类路径都不起作用。

如何确保测试不使用Hamcrest断言?我想在构建时使用Maven强制执行这一点。

共有1个答案

戴原
2023-03-14

基于不能从JUnit4中排除Hamcrest的传递依赖关系,因为JUnit本身使用它,所以只有几个选项:

  • 迁移到JUnit Jupiter(又名JUnit 5),完全删除hamcrest并通过maven-enforcer-rule禁止依赖项
  • 使用Arch单元防止使用
  • 创建SonarQube规则
  • 正如Robert已经建议的那样,Checkstyle规则..
  • 还可以考虑编写自定义强制规则吗?
  • 另一种选择是使用JQAssistant
 类似资料:
  • 我们有一个流氓生产者将Kafka Header设置为一个类,该类是生产者的一部分,但不是使用Kafka Streams绑定器在Spring Cloud Stream应用程序中实现的消费者的一部分。它导致了一个异常

  • 主要内容:1.概述,2. JUnit 4测试Fixtures示例,3.结论1.概述 测试Fixtures是一组对象的固定状态,用作运行测试的基准。测试Fixtures的目的是确保在众所周知的固定环境中进行测试,以便结果可重复。固定Fixtures示例: 准备输入数据以及设置/创建伪造或模拟对象 用一组已知的特定数据加载数据库 复制一组特定的已知文件以创建测试Fixtures,将创建一组初始化为某些状态的对象。 JUnit提供注解,以便测试类可以在每个测试之前或之后运行F

  • 我有一个有3个选项卡的ViewPager。根据我所看到的情况,当容器活动开始时,前两个片段将处于恢复状态。我还注意到,只有并排的两个片段被恢复,第三个被停止。我遇到的问题是,我从网络加载数据用于第一个片段,并将自定义对象存储在一个ArrayList中,这很正常,但当我导航到第三个片段时,数据会随着第一个片段进入停止状态而丢失。因此,当从第三个片段导航回第一个片段时,ArrayList就会为空(我在

  • 问题内容: 我遇到了一群黑客。他们几次入侵了我客户的网站,我的客户更加生气:(我的客户丢失了他的数据库(有数百条记录),不得不输入所有:( 现在,我将进行更多介绍。 固定文件权限 更改了ftp和主机登录信息 清除所有远程mysql访问 现在正在处理SQL注入问题。我在管理面板登录参数中添加了mysql_real_escape_string。所以我还应该在哪里使用mysql_real_escape_

  • 问题内容: 最近,我们对代码进行了安全审核,问题之一是我们的应用程序受到 Xml eXternal Entity (XXE)攻击。 基本上,该应用程序是一个计算器,可通过Web服务以XML形式接收输入。 这是对我们的应用程序进行此类XXE攻击的示例: 如您所见,我们可以引用指向外部文件()的实体。 关于XML输入本身(该部分)未与JAXB(v2.1)一起编组。Web服务部分基于jaxws- rt(

  • 问题内容: 我有一个现有的代码,其中应用程序根据很多条件生成不同的sql并通过hibernate会话createSQLQuery()执行它们。在这里,这些参数与作为普通字符串替换驻留在java类中的sql字符串相连接。现在的问题是,我需要防止sql注入。因此,为此,我必须使用getNamedQuery()并绑定参数,以便hibernate将处理特殊字符。但是问题在于将字符串sql的字符串移动到xm