【问题标题】:How to assert FlashAttributes in Spring WebTestClient?如何在 Spring WebTestClient 中断言 FlashAttributes?
【发布时间】:2022-08-15 21:31:17
【问题描述】:

我想测试FlashMap一个弹簧@Controller的分配:

@Controller
public class MyServlet {
    @GetMapping(\"/test\")
    public String get() {
            ServletRequestAttributes reqAttr = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            FlashMap outAttr = RequestContextUtils.getOutputFlashMap(reqAttr.getRequest());
            outAttr.put(\"success\", \"test\");
        }
    }
}

我怎样才能真正从WebTestClient 类访问闪存属性?

@SpringBootTest
public class ServletTest {
    @Autowired
    private WebTestClient;

    @Test
    public void test() {
        client.get().uri(\"/test\")
            .expectStatus().isOk()
            .expectBody().isEmpty(); 
            //TODO how to validate flash attributes?
    }
}

    标签: java spring spring-boot spring-mvc junit


    【解决方案1】:
    EntityExchangeResult<byte[]> result = client...
                                                .expectBody().returnResult();
    
    MockMvcWebTestClient.resultActionsFor(result)
                        .andExpect(flash()
                        .attribute("success", "test");
    

    【讨论】:

      猜你喜欢
      • 2022-10-18
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      相关资源
      最近更新 更多