java - 模拟 mvc 期望异常

标签 java spring testing junit mocking

我有一个 Controller 和一些方法,它会抛出 CustomException:

@GetMapping
ResponseEntity<Void> getOriginalUrl() {
  ...
  throw new CustomException("my message");
  ...
}

我想测试一下。 测试:

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

 @Test
 public void testGetOriginalUrl() throws Exception {
 mvc.perform(get(...)
            .contentType(MediaType.APPLICATION_JSON))
            .andExpect(status().isNotFound());

    thrown.expect(CustomException.class);
    thrown.expectMessage("my message");
 }

但是它不起作用。我如何测试它?

最佳答案

即使您的任何异常服务器将返回500内部服务器错误,所以您应该只验证状态代码

 mvc.perform(get(...)
        .contentType(MediaType.APPLICATION_JSON))
        .andExpect(status()isInternalServerError())
        .andExpect(status().reason(containsString("my message")));

关于java - 模拟 mvc 期望异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60534682/

相关文章:

java - 在外部类和内部类之间,在外部类内部或外部调用 main 方法时,它们的静态初始化程序运行顺序不同

java - 您能否为 Java 和 Selenium 中的显式等待创建通用或可重用的方法?

java - 如何打印我的 Java 对象而不得到 "SomeType@2f92e0f4"?

java - 响应未根据 Spring 4.3.0 中我的自定义响应类进行转换

java - 无法派生模块描述符 : Provider {class X} not in module

java - 无法将类型 [java.lang.String] 的值转换为属性所需的类型 [org.springframework.web.multipart.MultipartFile]

javascript - 如何在 Spring 中使用 JSTL 在下拉列表中显示数据?

node.js - 'tsConfigPath' 选项已弃用,并将在下一个主要版本中删除。使用 'compilerOptions.typescript.configPath' 选项代替

php - 是否值得尝试为世界上最紧密耦合的站点编写测试?

testing - Web 驱动程序 curl 异常