使用springboot单元测试对weblistener的加载测试
更新时间:2021年10月14日 14:22:08 作者:NewshiJ
这篇文章主要介绍了使用springboot单元测试对weblistener的加载测试,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
springboot单元测试对weblistener的加载测试
使用spring-boot对web项目进行测试时对weblistener进行加载.以proxool连接池的加载为例.
原监听器代码
@WebListener
public class ProxoolListener implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
loadProxool();
}
...//其他实现方法
}
spring-boot测试适配修改,继承TestExcutionListener接口,实现prepareTestInstance方法,将监听业务同样放在此方法中做预处理即可。
@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();
}
}
测试类
@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();
}
}
}
springboot web做单元测试
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
@SpringBootTest
public 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();
}
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
springboot利用aop实现接口异步(进度条)的全过程
我们在开发中,调用第三方接口时,往往是提交数据,要异步去获取数据,下面这篇文章主要给大家介绍了关于springboot利用aop实现接口异步(进度条)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-01-01
Mybatis中兼容多数据源的databaseId(databaseIdProvider)的简单使用方法
本文主要介绍了Mybatis中兼容多数据源的databaseId(databaseIdProvider)的简单使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-07-07


最新评论