TestMockMVC
package com.kkb.ssm.controlle.test;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import com.fasterxml.jackson.databind.Module.SetupContext;
//@WebAppConfiguration:可以在单元测试的时候,不用启动Servlet容器,就可以获取一个Web应用上下文
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/*.xml")
@WebAppConfiguration
public class TestMockMVC {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup() {
// 初始化一个MockMVC对象的方式有两种:单独设置、web应用上下文设置
// 建议使用Web应用上下文设置
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
@Test
public void test() throws Exception {
// 通过perform去发送一个HTTP请求
// andExpect:通过该方法,判断请求执行是否成功
// andDo :对请求之后的结果进行输出
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/item/showEdit").param("id", "1"))
.andExpect(MockMvcResultMatchers.view().name("item/item-edit"))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
System.out.println("================================");
System.out.println(result.getHandler());
}
@Test
public void test2() throws Exception {
// 通过perform去发送一个HTTP请求
// andExpect:通过该方法,判断请求执行是否成功
// andDo :对请求之后的结果进行输出
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/item/findItem").param("id", "1"))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.id").value(1))
.andExpect(MockMvcResultMatchers.jsonPath("$.name").value("台式机123"))
.andDo(MockMvcResultHandlers.print())
.andReturn();
System.out.println("================================");
System.out.println(result.getHandler());
}
}
package com.imooc.base;
import java.util.regex.Pattern;
import org.springframework.security.core.context.SecurityContextHolder;
import com.imooc.entity.User;
/**
* Created by 瓦力.
*/
public class LoginUserUtil {
private static final String PHONE_REGEX = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$";
private static final Pattern PHONE_PATTERN = Pattern.compile(PHONE_REGEX);
private static final String EMAIL_REGEX = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
private static final Pattern EMAIL_PATTERN = Pattern.compile(EMAIL_REGEX);
public static User load() {
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (principal != null && principal instanceof User) {
return (User) principal;
}
return null;
}
public static Long getLoginUserId() {
User user = load();
if (user == null) {
return -1L;
}
return user.getId();
}
/**
* 验证手机号码
*
* 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
* 联通号码段:130、131、132、136、185、186、145
* 电信号码段:133、153、180、189
*
* @param target 目标号码
* @return 如果是手机号码 返回true; 反之,返回false
*/
public static boolean checkTelephone(String target) {
return PHONE_PATTERN.matcher(target).matches();
}
/**
* 验证一般的英文邮箱
* @param target 目标邮箱
* @return 如果符合邮箱规则 返回true; 反之,返回false
*/
public static boolean checkEmail(String target) {
return EMAIL_PATTERN.matcher(target).matches();
}
}
正在找工作,欢迎发 JD 到我邮箱,坐标上海浦东新区。

浙公网安备 33010602011771号