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

迅当网络深圳外贸网站建设重庆seo整站优化外包服务

迅当网络深圳外贸网站建设,重庆seo整站优化外包服务,何为响应式网站,企业融资的40种方式文章目录 1、前言2、Maven依赖2.1 JDK21SpringBoot版本基于3.1.02.2 JDK17SpringBoot版本基于2.2.5.RELEASE 3、业务代码4、单元测试 1、前言 之前写过一篇使用testMe自动生成单元测试用例#xff0c;使用的是junit4来编写的单元测试用例#xff0c;目前很多新项目都已经使用… 文章目录 1、前言2、Maven依赖2.1 JDK21SpringBoot版本基于3.1.02.2 JDK17SpringBoot版本基于2.2.5.RELEASE 3、业务代码4、单元测试 1、前言 之前写过一篇使用testMe自动生成单元测试用例使用的是junit4来编写的单元测试用例目前很多新项目都已经使用JDK11以及SpringBoot3。本次基于junit5Mockito来编写单元测试。 2、Maven依赖 2.1 JDK21SpringBoot版本基于3.1.0 SpringBoot依赖 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.1.0/versionrelativePath/ !-- lookup parent from repository --/parentdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scopeexclusionsexclusiongroupIdorg.objenesis/groupIdartifactIdobjenesis/artifactId/exclusion/exclusions/dependencymockito依赖 !--junit5单元测试--dependencygroupIdorg.mockito/groupIdartifactIdmockito-junit-jupiter/artifactIdversion5.3.1/version/dependencydependencygroupIdorg.mockito/groupIdartifactIdmockito-core/artifactIdversion5.3.1/version/dependencylombok依赖 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversionedge-SNAPSHOT/version/dependency2.2 JDK17SpringBoot版本基于2.2.5.RELEASE SpringBoot依赖 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.5.RELEASE/version/parentJunit依赖 dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter/artifactIdversion5.8.2/version/dependencymockito依赖 dependencygroupIdorg.mockito/groupIdartifactIdmockito-core/artifactIdversion5.2.0/versionexclusionsexclusiongroupIdnet.bytebuddy/groupIdartifactIdbyte-buddy/artifactId/exclusionexclusiongroupIdnet.bytebuddy/groupIdartifactIdbyte-buddy-agent/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.mockito/groupIdartifactIdmockito-junit-jupiter/artifactIdversion5.2.0/version/dependencydependencygroupIdnet.bytebuddy/groupIdartifactIdbyte-buddy/artifactIdversion1.14.1/version/dependencydependencygroupIdnet.bytebuddy/groupIdartifactIdbyte-buddy-agent/artifactIdversion1.14.1/version/dependencylombok依赖 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.30/version/dependency3、业务代码 package com.summer.toolkit.mock;import com.alibaba.fastjson.JSON; import com.summer.toolkit.dto.UserDto; import com.summer.toolkit.exception.BizException; import com.summer.toolkit.executor.DefaultThreadFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.concurrent.*;Slf4j Service public class UserServiceImpl implements UserService {Resourceprivate UserManager userManager;Overridepublic Long createUser(UserDto userDto) {log.info(创建用户入参{}, JSON.toJSONString(userDto));String name userDto.getUsername();if (StringUtils.isBlank(name)) {log.error(用户名称不能为空);throw new BizException(用户名称不能为空);}Long id userManager.createUser(userDto);log.info(创建用户出参{}, id);return id;}Overridepublic Boolean updateUser(UserDto userDto) {log.info(更新用户入参{}, JSON.toJSONString(userDto));Long id userDto.getId();String name userDto.getUsername();if (Objects.isNull(id)) {log.error(用户主键不能为空);throw new BizException(用户主键不能为空);}if (StringUtils.isBlank(name)) {log.error(用户名称不能为空);throw new BizException(用户名称不能为空);}UserDto user userManager.getUser(userDto);if (Objects.isNull(user)) {log.error(用户不存在);throw new BizException(用户不存在);}Boolean result userManager.updateUser(userDto);log.info(更新用户出参{}, result);return result;}Overridepublic UserDto getUser(UserDto userDto) {log.info(获取用户入参{}, JSON.toJSONString(userDto));Long id userDto.getId();if (Objects.isNull(id)) {log.error(用户主键不能为空);throw new BizException(用户主键不能为空);}UserDto user userManager.getUser(userDto);log.info(获取用户出参{}, user);return user;}Overridepublic Boolean batchCreateUser(ListUserDto list) {log.info(批量创建用户入参{}, JSON.toJSONString(list));if (CollectionUtils.isEmpty(list)) {log.error(入参集合不能为空);throw new BizException(入参集合不能为空);}int size 10;long keepAliveTime 60;long start System.currentTimeMillis();BlockingQueueRunnable workQueue new ArrayBlockingQueue(10000);ThreadFactory threadFactory new DefaultThreadFactory(executor);ExecutorService executorService new ThreadPoolExecutor(size, size, keepAliveTime, TimeUnit.MINUTES, workQueue, threadFactory);ListCompletableFutureBoolean futureList new ArrayList();for (UserDto userDto : list) {CompletableFutureBoolean future CompletableFuture.supplyAsync(() - {log.info(当前线程名称{}, Thread.currentThread());try {Long id userManager.createUser(userDto);TimeUnit.SECONDS.sleep(3L);log.info(线程{} id{} done, Thread.currentThread(), id);return Boolean.TRUE;} catch (InterruptedException e) {log.error(创建用户异常{}, e.getMessage(), e);return Boolean.FALSE;}}, executorService);futureList.add(future);}Boolean result Boolean.TRUE;try {CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).get(10, TimeUnit.SECONDS);for (CompletableFutureBoolean future : futureList) {Boolean back future.get();if (Boolean.FALSE.equals(back)) {result Boolean.FALSE;}}} catch (Exception e) {log.error(创建用户异常{}, e.getMessage(), e);result Boolean.FALSE;}long end System.currentTimeMillis();log.info(批量创建用户耗时{}, (end - start));log.info(批量创建用户出参{}, result);return result;}} 4、单元测试 package com.summer.toolkit.service;import com.summer.toolkit.dto.UserDto; import com.summer.toolkit.exception.BizException; import com.summer.toolkit.mock.UserManager; import com.summer.toolkit.mock.UserServiceImpl; import com.summer.toolkit.util.FileUtils; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockedStatic; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import org.slf4j.Logger;import java.util.ArrayList; import java.util.Date; import java.util.List;import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString;ExtendWith(MockitoExtension.class) EnabledIfEnvironmentVariable(named DEBUG, matches true) public class UserServiceTest {Mockprivate Logger log;Mockprivate UserManager userManager;InjectMocksprivate UserServiceImpl userService;Testpublic void testCreateUser() {// 模拟依赖方法Mockito.when(userManager.createUser(any())).thenReturn(Long.valueOf(1));// 调用被测方法UserDto userDto this.buildUserDto();Long result userService.createUser(userDto);// 验证方法结果Long expect 1L;Assertions.assertEquals(expect, result);// 验证方法是否被调用Mockito.verify(userManager).createUser(userDto);// 验证依赖对象只有这一个Mockito.verifyNoMoreInteractions(userManager);}Testpublic void testUpdateUser() {// 模拟依赖方法Mockito.when(userManager.updateUser(any())).thenReturn(Boolean.TRUE);Mockito.when(userManager.getUser(any())).thenReturn(new UserDto());// 调用被测方法UserDto userDto this.buildUserDto();userDto.setId(1L);Boolean result userService.updateUser(userDto);// 验证方法结果Assertions.assertEquals(Boolean.TRUE, result);// 验证方法是否被调用Mockito.verify(userManager).getUser(any());Mockito.verify(userManager).updateUser(any());}Testpublic void testGetUser() {// 模拟依赖方法Mockito.when(userManager.getUser(any())).thenReturn(new UserDto());// 调用被测方法UserDto userDto this.buildUserDto();userDto.setId(1L);UserDto result userService.getUser(userDto);// 验证方法结果Assertions.assertNotNull(result);// 验证方法是否被调用Mockito.verify(userManager).getUser(userDto);}Testpublic void testBatchCreateUser() {// 模拟依赖方法指定单个异常类型Mockito.when(userManager.createUser(any())).thenThrow(BizException.class);// 调用被测方法ListUserDto param new ArrayList();UserDto userDto this.buildUserDto();param.add(userDto);Boolean result userService.batchCreateUser(param);// 验证方法结果Assertions.assertEquals(Boolean.FALSE, result);// 验证方法是否被调用默认一次Mockito.verify(userManager).createUser(userDto);// 验证方法是否被调用了1次Mockito.verify(userManager, Mockito.times(1)).createUser(any());}Testpublic void testBatchCreateUserTimes() {// 模拟依赖方法指定单个异常类型Mockito.when(userManager.createUser(any())).thenReturn(1L);// 调用被测方法ListUserDto param new ArrayList();UserDto userDto this.buildUserDto();param.add(userDto);param.add(userDto);param.add(userDto);Boolean result userService.batchCreateUser(param);// 验证方法结果Assertions.assertEquals(Boolean.TRUE, result);// 验证方法是否被调用了3次Mockito.verify(userManager, Mockito.times(3)).createUser(any());}Testpublic void testFileUtils() {// 构建对象ListString list new ArrayList();list.add(1);list.add(2);// 模拟对应的类// JDK11及以上版本中try块中的变量可以在外部声明MockedStaticFileUtils mocked Mockito.mockStatic(FileUtils.class);try (mocked) {// 模拟依赖静态方法mocked.when(() - FileUtils.readFileAllLines(anyString())).thenReturn(list);// 调用被测方法ListString lines FileUtils.readFileAllLines(anyString());// 验证方法结果Assertions.assertEquals(list.size(), lines.size());} catch (Exception e) {log.error(模拟静态方法异常{}, e.getMessage(), e);}}/*** 构建用户数据传输对象** return UserDto 返回构建好的用户数据传输对象*/private UserDto buildUserDto() {UserDto userDto new UserDto();userDto.setUsername(小明);userDto.setBirthday(new Date());userDto.setAddress(北京市大兴区亦庄经济开发区);userDto.setComment(加麻加辣);userDto.setGender(1);return userDto;}}
http://www.w-s-a.com/news/93384/

相关文章:

  • 福建省建设监理网官方网站做外贸网站卖什么东西好
  • 公司做网站排名东莞关键词优化推广
  • 连云港做企业网站公司全网营销与seo
  • 电子毕业设计代做网站wordpress 插件放在那
  • 黄石规划建设局网站怎么做存储网站
  • 网站安装wordpress滨江网站建设
  • 河南官网网站建设一般使用的分辨率显示密度是
  • dedecms新网站 上传到万网的空间宝洁公司网站做的怎么样
  • 网站建设语录优惠券的网站怎么做的
  • 白山市住房和建设局网站有实力高端网站设计地址
  • 沧州网站建设制作设计优化深圳网站自然优化
  • 企业做网站 乐云seowordpress中修改html
  • 网站细节门户wordpress主题下载
  • 全景网站模版wordpress套餐
  • 华为云建网站dw制作一个手机网站模板
  • 定陶菏泽网站建设河北新出现的传染病
  • 商业网站建设案例教程郑州服装网站建设公司
  • 网站内容怎么做专业的企业管理软件
  • 深圳网站制作公司排名微网站和微信公共平台的区别
  • 权威的唐山网站建设扁平网站欣赏
  • 网站外链建设工作计划应用公园app免费制作
  • 东莞营销型网站建设全自动建站系统
  • 网络在线培训网站建设方案虚拟主机配置WordPress
  • 建设工程信息查询哪个网站好台州做优化
  • wordpress页面回收站位置台州做网站
  • 邢台市行政区划图seo咨询师招聘
  • 外贸网站建设案例网站建设优化开发公司排名
  • 恩施网站优化郑州有没有厉害的seo
  • 电子商务网站建设与管理期末考试题铜山区建设局网站
  • 怎么做非法彩票网站大兴安岭网站建设公司