使用 Assume.assumeTrue 或 Assert.assertTrue,测试何时退出?

2024-03-26

我正在使用 JUnit 4.12,这是我目前对经常使用的以下 API 的理解:

  • 假设真:如果表达式计算结果为假,测试将停止并被 被忽略
  • assertTrue:如果条件为 false,则抛出 AssertionError
  • assertEquals:如果它们不相等,则抛出 AssertionError 给定的消息
  • assertNotNull:如果为null,则抛出AssertionError

但是,我无法弄清楚以下几件事:

  1. 我的理解是,只有假设True,测试才会退出,但断言的定义是,当语句计算结果为 false 时,程序应该退出
  2. 当测试抛出 AssertionError 时,它是退出测试用例还是继续执行剩余的步骤?
  3. 即使测试抛出断言错误,测试是否可以被视为通过,或者测试是否被视为失败?

  1. assumeTrue意味着测试不应该运行。这并不意味着您的代码已损坏,并且大多数跑步者会将此测试视为“忽略”

  2. An AssertionError意味着测试失败。该测试用例(单一方法)中不再运行任何步骤。这样做是没有意义的,因为测试已经失败了

  3. 测试失败了。如果您想否定测试的意义,还有其他方法可以做到这一点,例如代替assertNull with assertNotNull

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Assume.assumeTrue 或 Assert.assertTrue,测试何时退出? 的相关文章

  • 值注释在 Junit 测试中不起作用

    SpringBootTest public class RuleControllerTest Value myUrl private String myUrl private HttpClient httpClient HttpClient
  • assertThat - hamcrest - 检查列表是否已排序

    好吧 我认为这将是一个简短的问题 我有一个按日期排序的 ArrayList 当然我看到它有效 但我也想为它编写一个测试 我想检查列表中的下一个值 日期 是否低于前一个值 我可以使用一些来做到这一点fors 并添加临时列表 但我想知道是否有更
  • 测试预期会出现异常,但抛出了异常(它显示在输出中),但测试还是失败了

    您好 这里有一个针对车辆构造函数的测试 该测试用没有驾驶执照的驾驶员初始化车辆 并且应该抛出异常 代码构造函数 public Voertuig String Merk Datum datumEersteIngebruikname int A
  • 在 junit 中模拟 System.getenv 调用时遇到问题

    我正在尝试使用 junit 和mockito 对此非常新 为 Spring Boot 应用程序编写单元测试 基本上在我的代码中 我已经为 manifest yml 文件 用于部署 中的特定 URL 指定了一个环境变量 我可以通过它访问Str
  • 形成 Mockito“语法”

    Mockito 看起来像是一个非常可爱的 Java 存根 模拟框架 唯一的问题是我找不到任何关于使用他们的 API 的最佳方法的具体文档 测试中常用的方法包括 doXXX Stubber when T OngoingStubbing the
  • 运行 gradle 测试时找不到属性文件

    我正在使用 gradle 来构建和测试我的应用程序 我使用命令 gradle test 但是 从 Eclipse 中运行时可以完美运行的测试 在使用 gradle 运行时会失败 我的测试定义如下 它找不到的属性文件位于这两个文件夹中 hom
  • Ant JUnit ClassNotFoundException

    我意识到有很多类似的问题this one https stackoverflow com questions 10658636 new to ant classnotfoundexception with junit 但是在阅读了其中的大多
  • 断言列表时,assertEquals 到底检查什么?

    在我的测试中 我断言我返回的列表是我刚刚创建的列表按字母顺序排列的列表 assertEquals 到底检查什么 它检查列表的顺序还是仅检查其内容 因此 如果我有一个 Fred Bob Anna 列表 那么列表中的 2 个 Anna Bob
  • Maven:从执行元素获取目标配置

    假设我有以下魔力 Mojo name some goal public class MyMojo Parameter required true protected ComplexObject param 另外我在 pom 中有插件的描述符
  • 无法使用 junit 测试异常

    我有一个包含 try catch 块的方法 但我不知道如何使我的测试通过 这是我的代码 public class ClassToTest public void loadFileContent try InputStream fileStr
  • ant-找不到符号@Test

    我正在尝试编译以下仅包含一个函数的类 公共类测试注释 Test public void testLogin System out println Testing Login 当我将文件作为 JUNIt 运行时 它可以工作 但是当我尝试从 b
  • 如何在 JUnit 测试中引导weld-se

    我有一个用于单元测试的 Maven 项目 并且想使用 CDI 我已将weld se 依赖项放入 pom xml 中 如下所示
  • 参数化单元测试套件

    我正在尝试设置一些参数化测试套件 不幸的是到目前为止还没有任何运气 我有两组参数 我想使用所有可能的组合运行多个测试用例 它们位于不同的类中 我尝试使用 JUnit4 来完成此操作 但无法正确设置 这将是我的基本想法 TestSuite1
  • 使用java进行JSON模式验证[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在为返回 JSON 对象的 java webapp 编写一些验收测试 我想验证返回的 JSON 是否针对架构进行验证 任何人都可以建议
  • 如何为Spring测试创建TestContext?

    我有一个相对较小的 Java 库 它实现了几十个 bean 没有数据库或 GUI 我创建了一个 Spring Bean 配置文件 其他 Java 项目使用该文件将我的 bean 注入到他们的东西中 我现在第一次尝试使用 Spring Tes
  • 我怎样才能修复这段代码中的这个错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我运行 jUnit 测试时 我在 testSetName 上遇到错误 这是为什么 因为测试是为了查看名称是否为 ferndown 以及它
  • Eclipse/Maven:运行 JUnit 测试时未编译它们

    我正在使用 Maven 和 Eclipse m2eclipse 插件 开发一个项目 我在 JUnit 测试中遇到问题 有时 当在 Eclipse 中运行它们时 它们不会被编译 而是使用旧的类文件 当我删除类文件时 我得到ClassNotFo
  • 将 SpringBootTest 与 Spring 之前运行的其他测试一起使用时,如何确保 Eclipselink 发生加载时间编织

    我正在使用 Spring Rest Docs 为我的 REST 服务生成文档 这涉及运行单元 严格集成 测试 这些测试针对由测试启动的实时 Spring Boot 容器运行 测试类如下所示 RunWith SpringJUnit4Class
  • Android Mockito.verify 说参数不同!打印相同内容

    情况 我有一个界面Tracker其中有这个方法 fun trackEvent event String args Bundle null 我想验证是否使用特定的调用此方法event 被测试的内部对象调用此方法Bundle目的 所有事件都指定
  • @TestPropertySource 不适用于 Spring 1.2.6 中使用 AnnotationConfigContextLoader 的 JUnit 测试

    似乎我在 Spring 4 1 17 中使用 Spring Boot 1 2 6 RELEASE 所做的任何事情都不起作用 我只想访问应用程序属性并在必要时通过测试覆盖它们 无需使用 hack 手动注入 PropertySource 这不行

随机推荐