SpringMVC使用Junit测试Control+Service

    在开发过程中,若写了一个Service方法,不知该方法是否可以正常运行且结果是否正常。而Service中加入了一些其他的Bean,必须运行Spring容器才能进行运行和测试。此时需要繁琐的骚操作去解决这个问题。比如写一个测试的Controler去通过调用获取等。而Junit正是为了解决这个麻烦的问题而诞生的。

话不多说,进入正题。

================================================================================================

1.首先jar包准备,项目是基于springMVC,没有使用maven。所以通过下载的方式,将jar包加入到项目中。

下载的方法有很多种,此次我是通过IDEA自动下载的。

 

2.编写单元测试方法.

新建test文件夹,再新建Test class文件。

package test;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.test.context.ContextConfiguration;
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.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import szsti.gasstation.service.SysConfigService;

/**
 * @创建人: Dylan
 * @创建时间: 2020/10/9
 * @描述
 */

@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
// 加载所需要的配置文件
@ContextConfiguration({"classpath:spring/applicationContext-xxxn.xml", "classpath:spring/spring-mvc.xml"})
public class RestServiceTest {
    private static final Logger LOGGER = LoggerFactory.getLogger(RestServiceTest.class);
    /**
     * 没办法自动注入,通过下面的setup方法设置
     */
    private MockMvc mockMvc;

    /**
     * 注入WebApplicationContext,用于生成mockMvc
     */
    @Autowired
    private WebApplicationContext wac;
    
    /**
    * 需要测试的service
    */
    @Autowired
    private SysConfigService sysConfigService;

    @Before
    public void setup()
    {
        // 创建mockMVc
        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
        LOGGER.info("★★★★★★★★ WebApplicationContext = {}", wac);
    }
    @Test
    public void testService()
    {
        // 测试Service方法返回
        boolean aaa=sysConfigService.getStandApprove();
        System.out.println(aaa);
    }

    @Test
    public void testRestAPI()
            throws Exception
    {
        // get请求测试
//        MockHttpServletResponse response = mockMvc.perform(get("/test1").param("pageNo", "1").param("pageSize", "5")).andReturn().getResponse();
//        LOGGER.info("★★★★★★★★ Response Status = {}", response.getStatus());
//        LOGGER.info("★★★★★★★★ ContentType = {}", response.getContentType());
//        LOGGER.info("★★★★★★★★ Response Body = {}", response.getContentAsString());

        // post请求测试
//        response = mockMvc.perform(post("/test2").param("pageNo", "1").param("pageSize", "10")).andReturn().getResponse();
//        LOGGER.info("★★★★★★★★ Response Status = {}", response.getStatus());
//        LOGGER.info("★★★★★★★★ ContentType = {}", response.getContentType());
//        LOGGER.info("★★★★★★★★ Response Body = {}", response.getContentAsString());

    }
}

2.验证junit方法是否可以正常运行

测试通过,顺利拿到返回值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值