2014-11-14 3 views
0

Ниже приведен мой код для тестирования моего класса контроллера с использованием mockito.Весенний тест контроллера mvc с Mockito

, но я получаю запустить ошибки времени, как показано ниже

java.lang.NoClassDefFoundError: орг/springframework/веб/сервлет/FlashMapManager в org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup (MockMvcBuilders.java:71)

может кто-нибудь помочь мне в этом, пожалуйста,

package com.emc.elms.eomp.controller.ela; 

    import java.util.ArrayList; 
    import java.util.List; 

    import org.apache.log4j.Logger; 
    import org.junit.Before; 
    import org.junit.Test; 
    import org.junit.runner.RunWith; 
    import org.mockito.InjectMocks; 
    import org.mockito.Mock; 
    import org.mockito.MockitoAnnotations; 
    import org.mockito.runners.MockitoJUnitRunner; 
    import org.springframework.test.web.servlet.MockMvc; 
    import org.springframework.test.web.servlet.setup.MockMvcBuilders; 
    import org.springframework.util.Assert; 

    import com.emc.elms.eomp.constants.EOMPConstants; 
    import com.emc.elms.eomp.controller.ELAController; 
    import com.emc.elms.eomp.manager.ela.ELAManager; 
    import com.emc.elms.eomp.vo.ela.SalesOrderVO; 

    @RunWith(MockitoJUnitRunner.class) 
    //@ContextConfiguration({"classpath*:junit_servlet-context.xml"}) 
    public class ELAControllerTest { 

     @Mock 
     ELAManager elaManager; 



     @InjectMocks 
     private ELAController elaController; 

     @Mock 
     List<SalesOrderVO> salesOrderVOs; 

     private MockMvc mockMvc; 

     Logger logger = Logger.getLogger(ELAControllerTest.class); 

     @Before 
     public void setUp() throws Exception { 

      MockitoAnnotations.initMocks(this); 
      mockMvc = MockMvcBuilders.standaloneSetup(elaController).build(); 

     } 

     @Test 
     public void testHome() { 
      String view = elaController.home(); 
      Assert.isTrue(view.equals("home")); 
     } 

     @Test 
     public void testGetELAList() { 

      salesOrderVOs = new ArrayList<SalesOrderVO>(); 

      doReturn(salesOrderVOs).when(elaManager).getELAList(EOMPConstants.STR_BLANK,EOMPConstants.STR_BLANK,null); 

      // when(elaManager.getELAList(EOMPConstants.STR_BLANK,EOMPConstants.STR_BLANK,null)).thenReturn(salesOrderVOs); 

      //when(elaManager.getELAList(EOMPConstants.STR_BLANK,EOMPConstants.STR_BLANK,any(Date.class))).thenReturn(salesOrderVOs); 

       mockMvc.perform(get("/ela/elaVslaReport") 
         .param(EOMPConstants.STR_SORT_COLUMN, "salesOrderNumber") 
         .param("reportType", "Active")) 
         .andExpect(status().isOk()) 
         .andExpect(view().name("elaVslaReport")); 

       mockMvc.perform(get("/ela/elaVslaReport") 
         .param(EOMPConstants.STR_SORT_COLUMN, "salesOrderNumber") 
         .param("reportType", "All")) 
         .andExpect(status().isOk()) 
         .andExpect(view().name("elaVslaReport")); 

       mockMvc.perform(get("/ela/elaVslaReport") 
         .param(EOMPConstants.STR_SORT_COLUMN, "lac") 
         .param("reportType", "Active")) 
         .andExpect(status().isOk()) 
         .andExpect(view().name("elaVslaReport")); 
     } 

    } 

ответ

0

Что вы на самом деле пытаетесь проверить здесь? Вы смешиваете интеграционный тест с модульным тестированием.

Если вы хотите интегрировать тест, этот контроллер - сделайте это с помощью mock. Если вы хотите провести интеграционный тест, используйте Mockito (если имеет смысл сделать единичный тест этого класса).

+0

Привет, Марцин, мне нужно провести тестирование моего контроллера, поэтому я использую mockito с mockmvc для вызова контроллера ... но заканчивая этим исключением ... любая идея по этому поводу? –

+0

Вы смешиваете 2 вещи. Для тестирования вашего контроллера вам не нужен MockMvc. Почему вы хотите использовать это? Просто создайте экземпляр вашего контроллера в тестовом и модульном тесте. MockMvc будет использоваться для тестов интеграции. –

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