好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

使用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();

   }

  }

}

springboot web做单元测试

?

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

@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();

         }

     }

}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/ikevin/article/details/78530097

查看更多关于使用springboot单元测试对weblistener的加载测试的详细内容...

  阅读:16次