Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
zhangjie edited this page Aug 12, 2020 · 10 revisions

测试用例

pom文件引入jar包

<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-test</artifactId>
 <version>4.3.2.RELEASE</version>
 <scope>test</scope>
</dependency>
<dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.12</version>
 <scope>test</scope>
</dependency>

单元测试编写

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
 "classpath:beans.xml",
 "classpath:mybatis.xml"
 })
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class ServiceTest {
 @Resource
 private TrackService trackService;
 @Test
 public void testFindListByReferenceNo(){
 List<TrackEnt> list = service.findListByReferenceNo("KKon0019998");
 assertEquals(10,list.size());
 }
}

1.1 通过@Before实现测试用例运行前初始化
1.2 通过@After实现测试用例完成后清理
1.3 参考:https://www.jianshu.com/p/83eadf7b352f

Spring MVC

拦截器
  1. 执行顺序:filter -> Interceptor -> controller
  2. handleInterceptor拦截比filter更加精准,可以到达方法级别
    2.1 preHandle是在进入controller之前执行,postHandle是在返回model渲染视图之前执行,afterCompletion是在request执行完成后执行的
    2.2 拦截配置:
    public class MvcConfig implements WebMvcConfigurer{
     	@Override
     	public void addViewControllers(ViewControllerRegistry registry) {
     		registry.addViewController("/").setViewName("forward:/WEB-INF/views/login.jsp");
     		registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
     	}
     
     	@Override
     	public void addResourceHandlers(ResourceHandlerRegistry registry) {
     		registry.addResourceHandler("/webapp/static/**").addResourceLocations("classpath:/webapp/static/");
     	}
     
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
     registry.addInterceptor(userInterceptor).addPathPatterns("/**").excludePathPatterns("/login/sub.do");
     }
    }
    
    2.3 被拦截后返回错误码
    public class UserInterceptor extends HandlerInterceptorAdapter {
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
     PdaResponse pdaResult = new PdaResponse();
     pdaResult.setSuccess(false);
     pdaResult.setCode("-2");
     pdaResult.setMessage("pdaNeedReLogin");
     response.getOutputStream().write(JsonUtl.Object2Json(pdaResult).getBytes());
     response.getOutputStream().close();
     return false;
     }
    }
    
session
  1. getSession(boolean create):返回当前request中的HttpSession
    -->如果当前reqeust中的HttpSession为null
    (1)当create为true,就创建一个新的session
    (2)当create为false,返回null
  2. HttpServletRequest.getSession(ture)等同于HttpServletRequest.getSession()

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /