springboot-测试

本文介绍如何使用 Spring Boot 的测试模块进行单元测试,通过示例展示了如何设置 MockMvc 进行 HTTP 请求模拟,并提供了新用户注册功能的具体测试案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/king_is_everyone/article/details/53229929

我的springboot 的测试类

 

import org.junit.Before;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

@RunWith(SpringRunner.class)//运行器,指定用什么来运行,例SpringJUnit4ClassRunner.class
@SpringBootTest(classes = ApiMain.class)//测试SpringApplication(SpringBoot程序的入口是SpringApplication,并会引入这个boot的配置)
public class PayApiApplicationTests {

    protected MockMvc mockMvc;//实现对http请求的模拟,能够直接用网络形式,调用controller,不依赖网络环境,//不用建http client,还提供了一套验证工具来验证统一
	@Autowired
    private WebApplicationContext context;//web应用上下文,或者就可以理解为spring的Ioc容器,位于springframework.web.context包下
    @Before//初始化方法   对于每一个测试方法都要执行一次
    public void setup() {
        mockMvc = MockMvcBuilders
                .webAppContextSetup(context)
                //.apply(springSecurity())
                .build();

    }

}

 

 

 

 

 

 

import org.junit.Test;
import org.springframework.util.LinkedMultiValueMap;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;

public class AccountControllerTest  extends PayApiApplicationTests {
    /**
     * 2.1 新用户注册(页面方式)PC
     */
    @Test
    public void registerForPc() throws Exception {
        LinkedMultiValueMap map = new LinkedMultiValueMap<String, Object>();
        map.add("mobileNo", "");//手机号(11)
        map.add("pageReturnUrl", "");//页面返回 url(256)

        String responseString = this.mockMvc.perform(post("/xxxx/account/register/pc")
                .characterEncoding("UTF-8")
                .params(map))
                .andReturn().getResponse().getContentAsString();
        System.out.println(responseString);
    }
}


https://www.cnblogs.com/xiaohunshi/p/5706943.html 使用MockMvc测试Spring mvc Controller

 

http://blog.youkuaiyun.com/anders_zhuo/article/details/8955226 JUnit4 中@AfterClass @BeforeClass @after @before的区别对比

 

JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: 
@Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
@After:释放资源  对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
@Test:测试方法,在这里可以测试期望异常和超时时间 
@Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常 
@Ignore:忽略的测试方法 
@BeforeClass:针对所有测试,只执行一次,且必须为static void 
@AfterClass:针对所有测试,只执行一次,且必须为static void 
一个JUnit4的单元测试用例执行顺序为: 
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 
每一个测试方法的调用顺序为: 
@Before -> @Test -> @After; 

ps:

版本要一样

<dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>1.5.15.RELEASE</version>
            </dependency>


<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>1.4.5.RELEASE</version>
            <scope>test</scope>
        </dependency>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值