У нас есть приложение Spring, построенное с помощью Gradle, работающее с Spring Boot 1.2.5.RELEASE. Мы написали несколько первоначальных тестов интеграции с использованием Rest Assured для тестирования с нашими конечными точками REST. Это сработало, и наши конечные точки REST нашего приложения отвечали соответствующим образом через браузер и Postman.Интеграционные тесты с использованием весенней загрузки и безопасности
Затем мы использовали Spring Security для реализации OnePerRequestFilter и нашего собственного AuthenticationProvider. Наша аутентификация работает нормально, и браузер и почтальон все еще получают соответствующие ответы, однако наши интеграционные тесты больше не работают.
шагая через испытание, мы видим, наши конечные точки контроллера называют и возвращают правильный выход, но за эту точку мы получаем ошибку (с нулевым stacktrack) из org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.AbstractMethodError
.
Мы достигли прогресса, инициализируя наши интеграционные тесты с помощью Spring Security, мы попытались отказаться от Rest Assured и просто использовать MockMvc, мы попытались вернуться к Rest Assured и инициализировать с помощью MockMvc. Пока не повезло.
Наш код инициализации ниже, закомментированные части предназначены для Rest Assured, текущая реализация непосредственно используется MockMvc.
Любая помощь была бы принята с благодарностью!
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = IamExtensionApplication.class)
@WebIntegrationTest
public class OurIntegrationTest {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
// @Autowired
// private FilterChainProxy filterChainProxy;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).
apply(springSecurity()).
// addFilters(filterChainProxy).
build();
// RestAssuredMockMvc.mockMvc(mockMvc);
}
@Test
public void our_test() {
try {
ResultActions resp = amockMvc.perform(post("/our/endpoint").param("test", "test_value"));
} catch (Exception e) {
e.printStackTrace();
}
// MockMvcResponse resp = given()
// .param("test", "test_value")
// .when()
// .post("/our/endpoint");
}