使用springboot单元测试对weblistener的加载测试

网友投稿 856 2022-12-01

使用springboot单元测试对weblistener的加载测试

使用springboot单元测试对weblistener的加载测试

目录springboot单元测试对weblistener的加载测试原-代码测试类springboot web做单元测试

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 clahttp://ss 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;

imporhttp://t org.springframework.web.context.WebApplicationContext;

/**

* 类说明 :MockMvc 测试web

* 日期 :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();

}

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:2021-01-15 MariaDB非yum安装-二进制安装
下一篇:Go面经
相关文章

 发表评论

暂时没有评论,来抢沙发吧~