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

如何使用JUnit Test批注声明我的异常消息?

袁智明
2023-03-14
问题内容

我写了一些带有@Test注释的JUnit测试。如果我的测试方法引发了一个已检查的异常,并且我想与异常一起声明该消息,是否可以使用JUnit
@Test注释来做到这一点?AFAIK,JUnit
4.7不提供此功能,但是将来的版本会提供吗?我知道在.NET中,您可以断言消息和异常类。在Java世界中寻找类似的功能。

这就是我要的:

@Test (expected = RuntimeException.class, message = "Employee ID is null")
public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}

问题答案:

您可以将@Rule注释与一起使用ExpectedException,如下所示:

@Rule
public ExpectedException expectedEx = ExpectedException.none();

@Test
public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() throws Exception {
    expectedEx.expect(RuntimeException.class);
    expectedEx.expectMessage("Employee ID is null");

    // do something that should throw the exception...
    System.out.println("=======Starting Exception process=======");
    throw new NullPointerException("Employee ID is null");
}

请注意,ExpectedException文档中的示例(当前)是错误的-
没有公共构造函数,因此您必须使用ExpectedException.none()



 类似资料:
  • 问题内容: 我想将此示例C#代码转换为Java代码: 因为我想将此常量类更改为枚举 问题答案: 简而言之-您可以为枚举定义任意数量的参数,只要您提供构造函数参数(并将值设置为相应的字段) 正如Scott所指出的那样- 官方的枚举文档为您提供了答案。始终从语言功能和结构的官方文档开始。 更新:对于字符串,唯一的区别是您的构造函数参数为,并且您声明了带有

  • 问题内容: 我在junit测试中使用了模仿。如何使异常发生,然后断言其具有(通用伪代码) 问题答案: __仅 Mockito 并不是处理异常的最佳解决方案, 请将Mockito 与 Catch-Exception结合使用 Mockito + 捕获异常 + AssertJ 样例代码 Mockito + Catch-Exception + Assertj完整样本 依存关系 eu.codearte.ca

  • 我知道@autowired用于依赖注入

  • 声明运行时异常的方法的指导原则是什么? 假设我调用一个抛出的第三方例程。该例程能够抛出而不声明它这样做是否允许/标准/可接受? 和往常一样,我对我的问题引起的困惑感到惊讶:-D这可能是因为我很困惑。 在下面的代码中,可调用的是一个lambda,它发出一个,这会抛出SQLException。callable.call抛出Exception。 我由此推测,程序员希望抛出一个SQLException。然

  • 问题内容: 我试图在Go中声明为constant,但是它抛出一个错误。有人可以在Go中声明常量的语法帮助我吗? 这是我的代码: 这是错误 问题答案: 您的语法不正确。要制作文字映射(作为伪常量),可以执行以下操作: 在a中,您可以这样声明: 在Go中,没有常量映射之类的东西。可以在 此处 找到更多信息。 在Go游乐场尝试一下。

  • 本文向大家介绍如何使用JSP声明来声明类的对象?,包括了如何使用JSP声明来声明类的对象?的使用技巧和注意事项,需要的朋友参考一下 声明声明了一个或多个变量或方法,您可以稍后在JSP文件中的Java代码中使用它们。在JSP文件中使用变量或方法之前,必须先声明该变量或方法。 以下是JSP声明的语法- 您可以编写与上述语法等效的XML,如下所示- 以下是JSP声明中对象声明的示例-