这篇文章主要介绍了使用springboot单元测试对weblistener的加载测试,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了使用springboot单元测试对weblistener的加载测试,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了使用springboot单元测试对weblistener的加载测试,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
使用spring-boot对web项目进行测试时对weblistener进行加载.以proxool连接池的加载为例.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@WebListener public class ProxoolListener implements ServletContextListener{ @Override public void contextDestroyed(ServletContextEvent arg0) { } @Override public void contextInitialized(ServletContextEvent arg0) { loadProxool(); } ...//其他实现方法 } |
spring-boot测试适配修改,继承TestExcutionListener接口,实现prepareTestInstance方法,将监听业务同样放在此方法中做预处理即可。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
@WebListener public class ProxoolListener implements ServletContextListener,TestExecutionListener{ @Override public void contextDestroyed(ServletContextEvent arg0) { } @Override public void contextInitialized(ServletContextEvent arg0) { loadProxool(); } @Override public void afterTestClass(TestContext arg0) throws Exception { // TODO 自动生成的方法存根 } @Override public void afterTestMethod(TestContext arg0) throws Exception { // TODO 自动生成的方法存根 } @Override public void beforeTestClass(TestContext arg0) throws Exception { // TODO 自动生成的方法存根 } @Override public void beforeTestMethod(TestContext arg0) throws Exception { // TODO 自动生成的方法存根 } @Override public void prepareTestInstance(TestContext arg0) throws Exception { //启动测试时需要预先的处理 loadProxool(); }} |
|
1
2
3
4
5
6
7
8
9
10
11
12
|
@RunWith(SpringJUnit4ClassRunner.class)@TestExecutionListeners(listeners = { ProxoolListener.class , DependencyInjectionTestExecutionListener.class })public class DemoApplicationTest { @Test public void exampleTest() { try { System.out.println("Connection is closed : "+ProxoolUtility.getConnection("proxool.iovdc").isClosed()); } catch (SQLException e) { e.printStackTrace(); } } } |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package com.ziroom.finance.mbs.web;import com.alibaba.fastjson.JSONObject;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.http.MediaType;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.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;/** * 类说明 :MockMvc 测试web * 作者 :liuys * 日期 :2017/10/11 10:50 * 版本号 : V1.0 */@RunWith(SpringJUnit4ClassRunner.class)//开启web上下文测试@WebAppConfiguration@SpringBootTestpublic class LoginControllerTest { //注入webApplicationContext @Autowired private WebApplicationContext webApplicationContext; private MockMvc mockMvc; //设置mockMvc @Before public void setMockMvc() { mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); } @Test public void login(){ try { JSONObject jsonObject = new JSONObject(); jsonObject.put("userName", "liuys26"); jsonObject.put("userPw", "123"); jsonObject.put("cityCode", "801000"); jsonObject.put("userType", "0"); mockMvc.perform(MockMvcRequestBuilders.post("/api/login/auth") .contentType(MediaType.APPLICATION_JSON) .content(jsonObject.toJSONString()) ).andExpect(MockMvcResultMatchers.status().isOk()) .andDo(MockMvcResultHandlers.print()); } catch (Exception e) { e.printStackTrace(); } }} |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持米米素材网。
原文链接:https://blog.csdn.net/ikevin/article/details/78530097
发表评论