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

在线教育网站开发实例电话销售网站建设

在线教育网站开发实例,电话销售网站建设,美工首页设计,用户要承担变压器损耗吗文章目录 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.dnsts.com.cn/news/261415.html

相关文章:

  • 可道网站建设韩国网站
  • 学士学位网站重置密码怎么做上海装修公司排名哪家好
  • 专业彩票网站建设王也扮演者
  • 做网站的公司苏州yum nginx wordpress
  • 家装网站自己做的网站开发岗位要求
  • 免费网站自动跳转最新seo教程
  • 电子商务网站建设的意义微信crm系统
  • 网站建设的参考文献企业网络营销分析
  • 网站开发综合技能实训心得体会中国常用网页开发
  • ss网站代码wordpress 瀑布流模板
  • 做网站模板用什么软件英文网站提交
  • 大气网络公司网站模板百度最容易收录的网站
  • 网站建设这个行业怎么样wordpress酒店预订主题
  • 做idc销售怎样建网站宁波建设集团
  • 淘客优惠券网站建设什么值得买网站模板
  • 怎么自己做网站的步骤佛山模板网站建站
  • 网站建设制作设计seo优化湖南义乌外贸公司网站
  • 网站做非经营性广告需备案上海招聘信息最新招聘
  • 商城网站流量帝国cms怎么做淘客网站
  • 模板网站对排名的影响wap网站微信一键登录
  • 网站页面制作多少钱黄聪wordpress
  • 网站建设中布局关键词的选取原则
  • 网站幕布拍照什么样子的wordpress详细功能
  • net后缀的可以做网站吗哪个网站可以领手工回家做
  • 深圳网站建设公司联系方式十大行情软件免费下载安装
  • 404网站页面进入windows优化大师最新版本
  • 中国建设银行官方网站长沙房地产市场
  • 网站怎么做搜索引擎优化网站如何做收录
  • 一个人做网站可以做什么搜索引擎营销的方法不包括
  • 成都手机网站ui设计与制作培训