如何在 MockRestServiceServer 中模拟 http 标头?

mem*_*und 4 java junit spring spring-test spring-boot

我正在使用MockRestServiceServer模拟外部 web 服务 xml 响应。这已经很好了,但是我如何才能模拟响应中的http 标头,而不仅仅是响应正文?

    @MockBean
    private RestTemplate restTemplate;

    private MockRestServiceServer mockServer;

    @Before
    public void createServer() throws Exception {
        mockServer = MockRestServiceServer.createServer(restTemplate);
    }

    @Test
    public void test() {
        String xml = loadFromFile("productsResponse.xml");
        mockServer.expect(MockRestRequestMatchers.anything()).andRespond(MockRestResponseCreators.withSuccess(xml, MediaType.APPLICATION_XML));
    }
Run Code Online (Sandbox Code Playgroud)

小智 10

只需按照您的withSuccess方法使用headers方法即可。

mockServer
       .expect(...)
       .andRespond(withSuccess().headers(...));
Run Code Online (Sandbox Code Playgroud)