Python 官方文档:入门教程 => 点击学习
目录一.单元测试工具mock使用1.引入依赖包2.mock测试类二.SpringBoot使用@springBootTest单元测试1.引入依赖包2.测试类三.mock和@spring
在写单元测试的过程中我们会发现需要测试的类有很多依赖,这些依赖的类或者资源又会有依赖,导致在单元测试代码里无法完成构建,我们应对的方法是Mock。
简单的说就是模拟这些需要构建的类或者资源,提供给需要测试的对象使用。
不需要启动WEB服务,执行起来速度很快。
执行真正的操作,执行速度慢,当需要真正的dao层操作时可选此测试方式。
基于Junit 的Test
import junit.framework.TestCase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) //底层用junit的 SpringJUnit4ClassRunner
@SpringBootTest(classes = {XdclassSpringbootApplication.class})
public class XdclassSpringbootApplicationTests {
@Test
public void testOne() {
System.out.println("start test");
Assert.assertEquals(1,1);
TestCase.assertEquals(1,2);
}
}
当然也可以使用 @Before 和 @After , 和 junit 的测试一样。
启动类是必须要有的。
当有多个 @Test 的方法,需要一起执行的时候, 执行 XdclassSpringbootApplicationTests 这个类的 run或debug。
Assert 和 TestCase 都是 断言,用法一样。
perfORM
:执行一个RequestBuilder请求andExpect
:添加ResultMatcher->MockMvcResultMatchers验证规则andReturn
:最后返回相应的MvcResult->Response
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
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.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MockMvcTestDemo {
@Autowired
private MockMvc mockMvc;
@Test
public void apiTest(){
try {
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/hello"))
.andExpect(MockMvcResultMatchers.status().isOk()) .andReturn();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: 单元测试 @mock与@SpringBootTest的使用
本文链接: https://lsjlt.com/news/154474.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0