WebApplicationContext 中的@Autowired Spring MVC 测试不起作用

问题描述 投票:0回答:3

我正在尝试在我的 spring mvc 控制器中进行测试,但我的 applicationContext 始终为 null。

import org.springframework.beans.factory.annotation.Autowired
import org.springframework.test.context.web.WebAppConfiguration
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.ResultActions
import org.springframework.test.web.servlet.setup.MockMvcBuilders
import org.springframework.web.context.WebApplicationContext
import spock.unitils.UnitilsSupport

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

@UnitilsSupport
@WebAppConfiguration
//@ContextConfiguration(classes=Config.class)
//@ContextConfiguration(loader= ApplicationContextProvider.class)
class TimeSheetControllerIt extends TestsSupport {

    @Autowired
    private WebApplicationContext webApplicationContext; //NULL

    //private MockHttpServletRequest mockHttpServletRequest;
    private MockMvc mockMvc
    private ResultActions resultActions

    def setup(){
        //this.mockHttpServletRequest = new MockHttpServletRequest();
        this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
    }

我必须做什么?

spring spring-mvc
3个回答
0
投票

尝试提供上下文配置(您评论过的@ContextConfiguration)。

检查日志以查看您的应用程序上下文是否已正确初始化。


0
投票

您尚未提供任何上下文配置。因此,spring 不定位文件,它可以从中创建 bean 并在需要的地方注入。

请记住,主应用程序和测试的上下文配置位置是不同的。因此,即使您在 web.xml 中指定了它,它的范围也不包括测试。您必须在测试类中显式指定它。


0
投票

不是我,WebApplicationContext,pero 实现了 esto de la siguiente manera 帕拉米功能 在此输入图片描述

© www.soinside.com 2019 - 2024. All rights reserved.