Spring Boot + TestNG + MockMVC为@Autowired提供Null

问题描述 投票:1回答:1

我是Spring-Boot,TestNG和MockMVC的新手,当我尝试编写TestNG测试用例时,它给出了Null:

@Autowired
private WebApplicationContext webApplicationContext;

并且它给出了null

@BeforeTest
public void start()
{
     mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}

另外,基于之前的文件来自stackoverflow的移动

mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();到@Test也没有解决问题。

在我的代码片段下方

@Autowired
private WebApplicationContext webApplicationContext;

private MockMvc mockMvc;

@BeforeTest
public void setup() {
    mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}

@Test
public void testEmployee() throws Exception {
    mockMvc.perform(get("/employee")).andExpect(status().isOk())
        .andExpect(content().contentType("application/json;charset=UTF-8"))
        .andExpect(jsonPath("$.name").value("emp1")).andExpect(jsonPath("$.designation").value("manager"))
        .andExpect(jsonPath("$.empId").value("1")).andExpect(jsonPath("$.salary").value(3000));
}

分享的任何链接或工作样本都将是很有帮助的。

谢谢

java spring-boot mockito testng mockmvc
1个回答
1
投票

如果你想自动装配WebApplicationContext,你的测试类应该用@ContextConfiguration@WebAppConfiguration注释。

你可以找到一个example-ish here(Spring Framework的官方存储库)。

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