2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > quartz定时任务Job测试类怎么实现的 单元测试测试quartz定时任务的执行效果

quartz定时任务Job测试类怎么实现的 单元测试测试quartz定时任务的执行效果

时间:2020-10-11 04:58:19

相关推荐

quartz定时任务Job测试类怎么实现的 单元测试测试quartz定时任务的执行效果

目录

前言

主要得测试类源码

前言

需求描述主要是针对使用功能quartz来实现这个定时任务的话,那么测试类怎么写的呢,下面使用代码要演示一下,这个功能测试类

主要是这些测试方法,很有用处针对定时任务,不可能使用定时器每秒执行一下,自己debug调试肯定使用单元测试触发一下看下真真的执行效果就可以叠。所以说这里面的都是一些针对性的单元测试方法和类的实现,所以说单元测试是很有效果的,里面绑定了SpringBoot的测试类,可以注入相应的业务代码层级的Bean注入,可以直接注入进行调用!

主要得测试类源码

主要是Abstract实体父类

@SpringBootTest(classes = { ApplicationTest.class })public class BaseTest extends AbstractTestNGSpringContextTests {@Testpublic void runTest(){System.out.println("BaseJYPTest 启动测试");}}

子类实现具体的测试方法如下

import mon.collect.Lists;import mons.collections4.CollectionUtils;import mons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.testng.annotations.Test;import java.math.BigInteger;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.time.LocalDateTime;import java.util.Date;import java.util.List;import java.util.stream.Collectors;/*** @author lizx* @since -06-14*/public class MeetingGenerateJobTest extends BaseTest {@Autowiredprivate MeetingGenerateJob meetingGenerateJob;@Testpublic void test() {try {meetingGenerateJob.executeInternal(null);} catch (JobExecutionException e) {e.printStackTrace();}}@Autowiredprivate TbmRegionInfoDao tbmRegionInfoDao;@Autowiredprivate UsrORGZHXXFBDao usrORGZHXXFBDao;@Autowiredprivate UsrORGHYJBXXBDaoImpl usrORGHYJBXXBDao;@Autowiredprivate TransferTagService transferTagService;@Testpublic void t() {UsrORGZHXXB item = new UsrORGZHXXB();item.setID(603530918163L);InfoVo meetingInfo = new InfoVo();Date fbsj = new Date();String rowkey = RowKeyUtil.getRowKey(fbsj, item.getID().toString());meetingInfo.setRowkey(rowkey);meetingInfo.setID(item.getID().toString());meetingInfo.setZXDL(NewsCategoryType.MEETING.getType());meetingInfo.setXWBT(item.getZHZWMC());meetingInfo.setFBSJ(item.getFBSJ());meetingInfo.setZHSJQS(item.getZHSJQS());meetingInfo.setZHSJJZ(item.getZHSJJZ());String zhcs = "";if (item.getZHCS() != null) {TbmRegionInfo tbmRegionInfo = tbmRegionInfoDao.selectById(item.getZHCS());zhcs = tbmRegionInfo == null ? "" : tbmRegionInfo.getRegionName();meetingInfo.setZHCS(zhcs);}String meetingAddress = StringUtils.isEmpty(zhcs) ? item.getDZ() : (zhcs + " * " + buildObj(item.getZHDD()));meetingInfo.setZHDD(meetingAddress);String content = buildContent(item, meetingAddress);meetingInfo.setXWNR(content);String zhtp = "";/** if (null != item.getXXFBRQ() || null != item.getWJGS()) { zhtp =* buildImageUrl(OSS, "usrORGZHXXB", item.getXXFBRQ(), item.getID(),* item.getWJGS()); }*/meetingInfo.setZHTP(zhtp);// 行业标签List<InfoTagVo> tags = Lists.newArrayList();List<UsrORGZHXXFB> industry = usrORGZHXXFBDao.selectByRidAndType(item.getID());List<String> industryIds = industry.stream().map(UsrORGZHXXFB::getZHXGBM).collect(Collectors.toList());List<UsrORGHYJBXXB> industryObject = usrORGHYJBXXBDao.selectByCodes(industryIds);if (CollectionUtils.isEmpty(industryObject)) {}for (UsrORGHYJBXXB hy : industryObject) {Long businessId = hy.getBusinessId();QueryTagsByTagValueVo queryTagsByTagValueVo = new QueryTagsByTagValueVo();TagBusinessVo tagBusinessVo = new TagBusinessVo();tagBusinessVo.setBusinessId(businessId.toString());queryTagsByTagValueVo.setOtherObj(tagBusinessVo);JSONArray jsonArray = null;try {jsonArray = transferTagService.queryTagsByTagValue(queryTagsByTagValueVo);} catch (ApiException e) {e.printStackTrace();}if (null != jsonArray) {HundsunTagVo hundsunTagVo = jsonArray.getObject(0, HundsunTagVo.class);InfoTagVo infoTagVo = new InfoTagVo();infoTagVo.setCategoryId(hundsunTagVo.getCategoryId());infoTagVo.setTagWeight(1.0);infoTagVo.setTagObjects(Lists.newArrayList(hundsunTagVo));infoTagVo.setTagType((byte) 0);infoTagVo.setTagValue(hundsunTagVo.getTagValue());tags.add(infoTagVo);}}meetingInfo.setTags(tags);}private String buildContent(UsrORGZHXXB meeting, String meetingAddress) {StringBuffer sb = new StringBuffer();sb.append("展会中文名称:").append(buildObj(meeting.getZHZWMC()));sb.append("展会主题:").append(buildObj(meeting.getZHZT()));sb.append("\n展会口号:").append(buildObj(meeting.getZHKH()));sb.append("\n展会目的:").append(buildObj(meeting.getZHMD()));sb.append("\n展会亮点:").append(buildObj(meeting.getZHLD()));sb.append("\n展会范围:").append(buildObj(meeting.getZHFW()));sb.append("\n展会概况:").append(buildObj(meeting.getZHGK()));sb.append("\n展会时间起始:").append(buildObj(meeting.getZHSJQS()));sb.append("\n展会时间截止:").append(buildObj(meeting.getZHSJJZ()));sb.append("\n展会地点:").append(buildObj(meetingAddress));return sb.toString();}private String buildImageUrl(String ossAddress, String tableName, LocalDateTime localDateTime, Long id,String imageType) {// 访问图片路径:MD5(表名)/yyyy/MM/dd/id.[wjgs]StringBuffer path = new StringBuffer(ossAddress);MessageDigest md = null;try {md = MessageDigest.getInstance("MD5");if (null == md) {return null;} else {// 对字符串进行加密md.update(tableName.getBytes());// 获得加密后的数据}} catch (NoSuchAlgorithmException e) {e.printStackTrace();}if (md != null) {path.append(new BigInteger(1, md.digest()).toString(16));path.append("/" + localDateTime.getYear());path.append("/" + String.format("%02d", localDateTime.getMonthValue()));path.append("/" + String.format("%02d", localDateTime.getDayOfMonth()));path.append("/" + id).append(".").append(imageType == null ? "" : imageType.toUpperCase());return path.toString();}return null;}private String buildObj(Object obj) {if (null == obj) {return "";}return obj instanceof Date ? DateUtil.getDateFormat((Date) obj, DateUtil.format2) : (String) obj;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。