2015-09-24 3 views
4

Есть ли какой-либо инструмент или плагин maven, который может проверять контекст Spring во время компиляции или выполнения сборки maven?Проверка времени компиляции в контексте Spring

Я понимаю, что это не так, чтобы проверить полную правильность контекста без запуска приложения, но будет полезно проверить некоторые тривиальные случаи, например, если вы определяете bean-компонент в xml-контексте, тогда класс bean должен присутствовать в classpath.

+1

Вы должны использовать тесты для того, во время фазы тестирования Maven. – Tome

+0

Да, желание выполнить его во время фазы сборки Maven, вопрос в том, что именно выполнить. Пример @luboskrnac выглядит хорошо, я попробую это. – erkfel

ответ

3

Каждый Spring Guide содержит такой тест на чувствительность.

Для пружины MVC следует протестировать с помощью теста MockMvc. Чтобы убедиться, что конфигурация Spring настроена в порядке, вы можете создать полный контекст и пожарные запросы по URL-адресу, а также проверить валидацию + всю проводку Spring. Такой тест выполняется во время тестовой фазы maven.

Что-то вроде этого:

@WebAppConfiguration 
@ContextConfiguration(classes = RestApplication.class) 
public class RestApplicationContextTest extends 
    AbstractTestNGSpringContextTests { 

    private static final String FULL_USER_URL = "http://localhost:10403/users"; 
    private MockMvc mockMvc; 

    @Autowired 
    private WebApplicationContext webApplicationContext; 

    @BeforeMethod 
    public void init() { 
    mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); 
    } 

    private static String createTestRecord(int identifier) { 
    String testingRecordString = 
     "{\"email\": \"user%[email protected]\", \"name\": \"User%d\"}"; 
    return String.format(testingRecordString, identifier, identifier, 
     identifier); 
    } 

    @Test 
    public void testPost() throws Exception { 
    // GIVEN 
    String testingRecord = createTestRecord(0); 

    // WHEN 
    // @formatter:off 
    MvcResult mvcResult = mockMvc.perform(post(FULL_USER_URL) 
     .contentType(MediaType.APPLICATION_JSON) 
     .content(testingRecord)) 
     .andReturn(); 
    // @formatter:on 

    // THEN 
    int httpStatus = mvcResult.getResponse().getStatus(); 
    assertEquals(httpStatus, HttpStatus.CREATED.value()); 
    } 
    ... 
+0

Он выглядит хорошо, спасибо за предложение! – erkfel

Смежные вопросы