springboot单元测试之六:用mockmvc模拟cookie(springboot2。。。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
springboot单元测试之六:⽤mockmvc模拟
cookie(springboot2。
⼀,演⽰项⽬的相关信息
1,地址:
https:///liuhongdi/cookietest
2,功能说明:演⽰mockmvc访问controller时提交cookie
3,项⽬结构:如图:
说明:刘宏缔的架构森林是⼀个专注架构的博客,地址:
对应的源码可以访问这⾥获取:
说明:作者:刘宏缔邮箱: 371125307@
⼆,java代码说明
1,controller/UserController.java
@RestController
@RequestMapping("/user")
public class UserController {
//读取session
@GetMapping("/get")
public String getcookie(@CookieValue(value = "username", defaultValue = "") String username) {
System.out.println("get cookie:"+username);
return "" + username;
}
//设置session
@GetMapping("/set")
public String setcookie(@RequestParam("userName")String userName, HttpServletRequest request, HttpServletResponse response) {
Cookie cookie = new Cookie("username", userName);
//过期时间,单位是:秒(s)
cookie.setMaxAge(30 * 24 * 60 * 60);
//cookie.setPath(request.getContextPath());
cookie.setPath("/");
response.addCookie(cookie);
System.out.println("set cookie:"+userName);
return userName;
}
}
2,controller/UserControllerTest.java
@AutoConfigureMockMvc
@SpringBootTest
class UserControllerTest {
@Autowired
private UserController userController;
@Autowired
private MockMvc mockMvc;
@Test
@DisplayName("测试读取cookie值")
void getCookie() throws Exception{
Cookie cookieu = new Cookie("username", "mr liu");
//过期时间,单位是:秒(s)
cookieu.setMaxAge(30 * 24 * 60 * 60);
cookieu.setPath("/");
//query
MvcResult mvcResult = mockMvc.perform(get("/user/get")
.cookie(cookieu)
.contentType(MediaType.APPLICATION_FORM_URLENCODED))
.andReturn();
String content = mvcResult.getResponse().getContentAsString();
assertThat(content, equalTo("mr liu"));
}
@Test
@DisplayName("测试读取cookie值失败")
void getCookieFail() throws Exception{
//query
MvcResult mvcResult = mockMvc.perform(get("/user/get")
//.cookie(cookieu)
.contentType(MediaType.APPLICATION_FORM_URLENCODED))
.andReturn();
String content = mvcResult.getResponse().getContentAsString();
assertThat(content, equalTo(""));
}
@Test
@DisplayName("测试写cookie值")
void setCookie() throws Exception{
String cookieValue="laoliu123aaa";
//query
MvcResult mvcResult = mockMvc.perform(get("/user/set?userName="+cookieValue) .contentType(MediaType.APPLICATION_FORM_URLENCODED))
.andReturn();
String content = mvcResult.getResponse().getContentAsString();
assertThat(content, equalTo(cookieValue));
}
}
三,效果测试
1,查接访问url测试
set cookie:
http://127.0.0.1:8080/user/set?userName=laoliu123
get cookie:
http://127.0.0.1:8080/user/get
返回:
2,执⾏单元测试:
四,查看spring boot的版本: . ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.3)。