当前位置: 首页 > 面试题库 >

断言Optional具有一定价值

屠振濂
2023-03-14
问题内容

我有一个Java方法返回Optional。我想为其编写一个易于阅读的单元测试,

  1. 返回的Optional具有一个值(即Optional不为空),并且

  2. 返回值等于期望值。

假设我测试过的方法是

Optional<String> testedMethod(){
  return Optional.of("actual value");
}

问题答案:

您也可以使用AssertJ进行流畅的断言

@Test
public void testThatOptionalIsNotEmpty() {
    assertThat(testedMethod()).isNotEmpty();
}

@Test
public void testThatOptionalHasValue() {
    assertThat(testedMethod()).hasValue("hello");
}


 类似资料:
  • 默认情况下,消息:此值无效。这是不够的。我正在向实体中的每个属性添加@Assert,以进行更具体的验证。 我将在表单顶部全局显示错误,而不是单独显示错误,以防在本次讨论中出现问题。 这是迄今为止我所知道的,但当我输入值“D44.33”时,表单仍然无效 如何覆盖默认的“类型”验证器?请注意,其他验证器(如GreaterThanOrEqual)的工作原理与预期相同,但就我而言,我无法让“类型”工作??

  • 我想检查两个列表(比方说,ArrayList)是否有完全相同的实例类,基于预期的列表。为此,我构建了下一个方法,但我想知道是否有另一种使用某些库的奇特方法,比如assertJ。 任何建议都是非常受欢迎的。谢谢

  • 否定断言函数。 接受一个断言函数,并用它的参数应用逻辑非运算符 (!) 。 const negate = func => (...args) => !func(...args); [1, 2, 3, 4, 5, 6].filter(negate(n => n % 2 == 0)); // [ 1, 3, 5 ]

  • 假设我想用这个签名对一个方法进行单元测试: 假设是一个具有许多属性的Pojo,其中一个属性是,通过访问。 我所关心的只是验证

  • 问题内容: 今天,我看到了一个带有Java断言而不是JUnit断言的JUnit测试用例-相对于另一个而言,优先选择一个优点还是缺点? 问题答案: 在JUnit4中,JUnit断言引发的异常(实际上是Error)与java 关键字(AssertionError)引发的错误相同,因此它与堆栈跟踪完全相同,除了您无法分辨出其区别。 话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,

  • 背景:https://dev.to/carey/java-map-keys-should-always-be-comparable-2c1b 我想要达到的目标: 查找使用HashMap的代码 我被困在第二步 你知道如何得到泛型类的类型吗?谢谢你的支持。