gpt4 book ai didi

spring-mvc - Mockito 与 Spring mvc

转载 作者:行者123 更新时间:2023-12-05 06:45:00 26 4
gpt4 key购买 nike

下面是我使用 mockito 对 Controller 类进行单元测试的代码。

但是我遇到如下运行时错误

java.lang.NoClassDefFoundError:org/springframework/web/servlet/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"));
}

}

最佳答案

你需要静态导入get:

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

您还使用了 statusview。您还需要导入它们:

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

编辑:要回答您编辑中的新问题,请确保您的类路径中有最新的 servlet API。如果您使用的是 Maven,请添加以下内容:

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

关于spring-mvc - Mockito 与 Spring mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26927182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com