我正在尝试在我的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();
}
我该怎么办?
答案 0 :(得分:0)
尝试提供上下文配置(您已注释的@ContextConfiguration)。
检查日志以查看您的应用程序上下文是否已正确初始化。
答案 1 :(得分:0)
您尚未提供任何上下文配置位置。因此,spring不会定位文件,从中可以创建bean并在需要的地方注入。
请记住,主应用程序和测试的上下文配置位置是不同的。因此,即使您在web.xml中指定了它,它的范围也不包括测试。您必须在测试类中明确指定它。