我正在尝试使用MockMVC(Spring框架)运行2个测试。
userID
并返回。userID
删除添加的用户。在我的测试课程开始时,我有这个变量:String userID;
这是我创建用户的测试(它可以工作)。创建用户后,我从响应中获得该用户生成的ID。
@Test
public void it_adds_a_new_user() throws Exception {
MvcResult result = mockMvc
.perform(post("/users")
.contentType(MediaType.APPLICATION_JSON)
.content("User infos, in JSON..."))
.andExpect(status().isOk())
.andReturn();
//Next lines just take the ID from the response
Matcher matcher = Pattern.compile("\\d+").matcher(result.getResponse().getContentAsString());
matcher.find();
this.userID = matcher.group();
System.out.println(userID); //Correctly print the generated ID
}
现在,我试图删除这个可怜的家伙:
@Test
public void it_deletes_the_new_user() throws Exception {
System.out.println(userID); //It prints null!
mockMvc.perform(delete("/users/" + userID)
.contentType(MediaType.APPLICATION_JSON)
.andExpect(status().isOk()); //400 because userID is null :-(
}
问题是userID
在第一次测试中被正确初始化,但在第二次测试中是null
(它是一个类变量)。我不明白为什么。
你能帮助我运行这些测试吗?如果可能的话,在第二次测试中解释为什么userID == null
?
谢谢!