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

时间:2018-05-25 03:53:14

标签: java spring-boot mockito testng mockmvc

我是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));
}

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

感谢

1 个答案:

答案 0 :(得分:1)

如果您要自动加载WebApplicationContext,则应使用@ContextConfiguration@WebAppConfiguration注释您的测试类。

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