我正在尝试在我的 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();
}
我必须做什么?
尝试提供上下文配置(您评论过的@ContextConfiguration)。
检查日志以查看您的应用程序上下文是否已正确初始化。
您尚未提供任何上下文配置。因此,spring 不定位文件,它可以从中创建 bean 并在需要的地方注入。
请记住,主应用程序和测试的上下文配置位置是不同的。因此,即使您在 web.xml 中指定了它,它的范围也不包括测试。您必须在测试类中显式指定它。
不是我,WebApplicationContext,pero 实现了 esto de la siguiente manera 帕拉米功能 在此输入图片描述