代码之家  ›  专栏  ›  技术社区  ›  joeyisplaying

在使用MongoTemplate和Testcontainers测试5xx响应时,如何在不等待超时的情况下立即抛出DataAccessException?

  •  0
  • joeyisplaying  · 技术社区  · 3 年前

    我正在尝试编写测试,以覆盖MongoDB不可用的情况。在我的代码中,为了处理此事件,我捕获 DataAccessException 扔我自己的习俗 ServiceUnavailableException 返回503响应代码。

    使用Testcontainers和MongoDB容器/MongoTemplate,当我停止MongoDB容器时,如何避免30秒的超时,以模拟Mongo不可用?

    目前,30秒的超时使测试无法运行。我希望能够立即投出 数据访问异常 并断言503响应。

    我的测试如下:

        @Test
        void savingDocumentToDbReturns503() throws Exception {
            mongoDBContainer.stop();
        
            mockMvc.perform(post("/endpoint")
                            .contentType(MediaType.APPLICATION_JSON)
                            .content(objectMapper.writeValueAsString(request)))
                    .andExpect(MockMvcResultMatchers.status().isServiceUnavailable());
            
            mongoDBContainer.start();
        }
    
    0 回复  |  直到 3 年前
    推荐文章