@WebMvcTest для SOAP?

Аннотация Spring Boot @WebMvcTest предназначена только для RestController нарезанных тестов, или конечные точки SOAP тоже должны тестироваться с ее помощью?

Когда я настраиваю свой тест и запускаю его, я получаю только ответ 404, как если бы конечной точки там не было, поэтому я предполагаю, что это не часть WebMvc среза.

@RunWith(SpringRunner.class)
@WebMvcTest(value = IdServerPortTypeV10.class)
@Import({SecurityConfig.class, ModelMapperConfig.class, WebServiceConfig.class, ControllerTestBeans.class})
public class AccountEndpointTests {
    @Autowired
    IdServerPortTypeV10 soapEndpoint;

    ...

    @Before
    public void setup() {
        mockMvc = MockMvcBuilders
            .webAppContextSetup(wac)
            .apply(springSecurity())
            .build();
    }

    @Test
    @WithMockUser(roles = VALID_ROLE)
    public void getAccountTest_Success() throws Exception {

        mockMvc.perform(
            post("/soap/idserver/1.0")
                .accept(MediaType.TEXT_XML_VALUE)
                .headers(SoapTestUtility.getHeader(SERVICE.getNamespaceURI(), "getAccount"))
                .content(SoapTestUtility.getAccountXml())
        ).andDo(print())
            .andExpect(status().isOk());
    }
}

Конечная точка включена в WebServiceConfig.class, в котором установлено @EnableWs.


person user3105453    schedule 16.02.2018    source источник


Ответы (1)


@WebMvcTest, как следует из названия, предназначен только для тестов, связанных с Spring MVC.

Поддержка SOAP в Spring обеспечивается проектом Spring Web Services, который имеет собственную поддержку интеграционного тестирования.

person Sam Brannen    schedule 17.02.2018