当前位置: 首页 > news >正文

武汉光谷做网站的公司产品运营推广方案

武汉光谷做网站的公司,产品运营推广方案,西安短视频拍摄制作公司,亚当学院网站视频建设教程JUnit 5是一个功能强大的测试框架,常用于编写和执行这些单元测试。以下是一些JUnit 5中的常用注解、断言、前置条件、嵌套测试和参数化测试的例子: 1.环境启动 SpringBootTest 注解: classes SmartApplication.class:这个属性…

JUnit 5是一个功能强大的测试框架,常用于编写和执行这些单元测试。以下是一些JUnit 5中的常用注解、断言、前置条件、嵌套测试和参数化测试的例子:

1.环境启动

@SpringBootTest 注解:

classes = SmartApplication.class:这个属性指定了一个或多个Spring Boot应用程序的启动类(入口点)。在测试中使用启动类可以让Spring Boot应用程序的上下文被加载,以便进行测试。

webEnvironment属性:

  • NONE: 不启动任何Web相关的环境,通常用于不需要Web环境的测试。
  • RANDOM_PORT: 随机分配一个端口来启动Web环境。
  • ANY: 使用第一个可用端口来启动Web环境。
  • MOCK: 使用MockMvc来模拟Web环境,而不用启动真实的Web服务器。
  • DEFINED_PORT: 使用在@LocalServerPort或@Value注解中定义的端口来启动Web环境。使用配置文件中定义好的端口
@SpringBootTest(classes = SmartApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
class JunitApplicationTests {@AutowiredTestService testService;@Testvoid contextLoads() {System.err.println("测试启动");System.out.println(testService.test());}}

2. 常用注解

  • @Test:用于标记一个方法作为测试方法。
  • @BeforeEach:在每个测试方法之前执行一次。
  • @AfterEach:在每个测试方法之后执行一次。
  • @BeforeAll:在所有测试方法之前执行一次。
  • @AfterAll:在所有测试方法之后执行一次。
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Test;public class MyServiceTest {private MyService service;@BeforeAllpublic static void setup() {// 在所有测试之前执行的代码}@BeforeEachpublic void setupEachTest() {// 在每个测试之前执行的代码service = new MyService();}@AfterEachpublic void teardown() {// 在每个测试之后执行的代码}@AfterAllpublic static void teardown() {// 在所有测试之后执行的代码}@Testpublic void myTestMethod() {// 测试逻辑}
}

3.模拟发送HTTP请求

断言

  • Assertions.assertEquals(expected, actual):断言期望值与实际值相等。
  • Assertions.assertNotEquals(unexpected, actual):断言期望值与实际值不等。
  • Assertions.assertNull(object):断言对象为null。
  • Assertions.assertNotNull(object):断言对象不为null。
  • Assertions.assertTrue(condition):断言条件为true。
  • Assertions.assertFalse(condition):断言条件为false。

使用RestTemplate发送请求

@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = YourApplication.class)
public class YourControllerTest {@Autowiredprivate RestTemplate restTemplate;@Testpublic void should_handle_request_correctly() {// 模拟请求String url = "http://example.com/api";HttpEntity<String> request = new HttpEntity<>("some request body", headers);// 发送请求ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, request, String.class);// 断言assertEquals(HttpStatus.OK, response.getStatusCode());assertEquals("expected response body", response.getBody());}
}

使用Mock发送请求

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;import java.util.HashMap;
import java.util.Map;import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;import com.example.yourproject.controller.YourController;@ExtendWith(MockitoExtension.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class YourControllerTest {@Mockprivate YourController yourController;private MockMvc mockMvc;@BeforeEachpublic void setUp() {mockMvc = MockMvcBuilders.standaloneSetup(yourController).build();}@Testpublic void testYourController() throws Exception {// 准备请求参数Map<String, String> requestParams = new HashMap<>();requestParams.put("param1", "value1");requestParams.put("param2", "value2");// 设置模拟的响应String expectedResponse = "{\"message\":\"Hello World!\"}";when(yourController.yourMethod(requestParams)).thenReturn(expectedResponse);// 发送请求并验证结果mockMvc.perform(MockMvcRequestBuilders.post("/your-endpoint").contentType(MediaType.APPLICATION_JSON).content(JSON.toJSONString(requestParams))).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_VALUE)).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World!"));}}
http://www.ritt.cn/news/16307.html

相关文章:

  • 网站开发教育培训百度网站认证
  • 淘客没有网站难做百度网盘网页版官网
  • 电子政务网站建设实践报告百度关键词排名价格
  • 网站正在建设源码安装百度一下
  • 怎样给装修公司做网站公众号软文推广多少钱一篇
  • 博客网站做外贸可以吗怎么优化网站排名才能起来
  • 百度收录正常网站流量下降珠海网站建设优化
  • 淘宝客个人网站怎么做如何写软文赚钱
  • c语言建网站北京seo公司司
  • 网站 二级分类公司注册
  • 做网站需要哪些基本功能夸克浏览器网页版入口
  • 好网站你知道的凡科网站登录入口
  • 如何设计好酒店网站模板百度收录排名查询
  • 做婚礼请柬的网站有哪些西安全网优化
  • 做企业网站好的网络营销好不好
  • 漯河优惠网站建设价格有哪些平台可以发布推广信息
  • 营销网站怎么做百度搜索关键词排名查询
  • 邯郸网站制作哪里做手机百度搜索引擎入口
  • 免费网站在哪里申请外链代发公司
  • 佛山新网站建设如何福建优化seo
  • 东圃做网站的公司营销和运营的区别是什么
  • 山东网站建站建设每天三分钟新闻天下事
  • 中央经济工作会议2020惠州优化怎么做seo
  • 胶州网站建设哪里有免费广告推广平台
  • 农村电商平台发展现状如何提高网站seo排名
  • 中国电商建站程序关键词汇总
  • 网站模板下载 网盘百度医生在线问诊
  • 商务网站建设与管理网站推广做什么
  • 做图网站有哪些化妆品推广软文
  • 张家界简单的网站建设百度竞价点击软件奔奔