springboot 单元测试

前置条件,引入依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${spring-boot.version}</version>
            <scope>test</scope>
        </dependency>

1:service 单元测试

选中要单元测试的service,例如UserService/右键/Go To/Test/选择要单元测试的方法,将会自动在test目录创建对应的测试

 增加注解,让测试服务能在springboot启动,

@RunWith(SpringRunner.class)
@SpringBootTest

SpringBoot项目没有@RunWith注解

原因:

SpringBoot2.2 开始没有@RunWith注解。如果想用这个注解的话,需要降低SpringBoot版本到2.2之前。

如果SpringBoot是2.2之后的版本,测试类上只需要@SpringBootTest一个注解就可以了,而且不需要写classpath。

 

2:对Controller进行单元测试

操作方法和对service进行单元测试类似,只是添加注解不同

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;

import javax.annotation.Resource;

/**
 * @author lym
 * @date 2022/12/19
 */
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@Slf4j
class UserControllerTest{

    @Resource
    protected MockMvc mockMvc;

    @Test
    void info() {
        MvcResult mvcResult = null;
//        UserInfoDto userInfoDto = new UserInfoDto();
//        userInfoDto.setMobile("18621969421");
        try {
            mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/user/info")
                    .accept(MediaType.APPLICATION_JSON)
//                    .content(JSONUtil.toJsonStr(userInfoDto)))        //传递json
                    .param("mobile", "186xxxx9421"))
                    .andDo(MockMvcResultHandlers.print())
                    .andReturn();
            log.info(mvcResult.getResponse().getContentAsString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Test
    void deleteCache() {
    }

    @Test
    void getQywxUserInfoUrl() {
    }

    @Test
    void buyRecord() {
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值