2014-11-14 3 views
0

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

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

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")); 
    } 

} 

ответ

1

Вы должны статически импортировать get:

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; 

Вы также используете status и view. Вы должны импортировать их тоже:

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; 
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; 

Edit: чтобы ответить на новый вопрос в вашем редактировать, убедитесь, что у вас есть последняя сервлета API в своем классе пути. Если вы используете Maven, добавьте это:

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.1.0</version> 
</dependency> 
+1

Спасибо за ваш ответ .... теперь, когда я бегу, я получаю java.lang.NoClassDefFoundError об ошибке: орг/springframework/веб/сервлет/FlashMapManager \t на org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup (MockMvcBuilders.java:71) –

+0

Я обновил свой ответ. – Khalid

+0

все та же проблема ... какую версию зависимости spring-webmvc я должен использовать? –