0

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

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

我必须做什么?

4

2 回答 2

0

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

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

于 2013-05-21T11:26:24.903 回答
0

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

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

于 2013-05-22T05:23:35.820 回答