Cucumber-Java自动化脚本:如何将默认当日日期改为2022/01/01
修改方案
方案1:保留Date对象流程,指定目标日期
原来的代码通过Calendar.getInstance().getTime()获取当前日期,我们只需要修改这部分,手动设置2022年1月1日即可。注意Calendar的月份是从0开始计数(0=1月,1=2月...11=12月),用Calendar.JANUARY代替数字0会更直观:
public void validateStartDateDefaultValueNew() throws Exception{ // 创建Calendar实例,设置为2022年1月1日 Calendar targetCalendar = Calendar.getInstance(); targetCalendar.set(2022, Calendar.JANUARY, 1); Date date = targetCalendar.getTime(); DateFormat dateformatter = new SimpleDateFormat("dd/MM/yyyy"); String targetDate = dateformatter.format(date); // 格式化后得到"01/01/2022" System.out.println("target date is "+targetDate); System.out.println("formatted target date is "+dateformatter.parse(targetDate)); String [] actual1 = searchStartDateInput.getAttribute("value").split(" "); String actual = actual1[0]; System.out.println("actual app date is "+actual); Assert.assertEquals(targetDate, actual); // 用目标日期做断言 }
方案2:直接使用目标日期字符串(更简洁)
如果不需要中间的Date对象,直接定义目标日期字符串会省去Calendar的操作,代码更简洁:
public void validateStartDateDefaultValueNew() throws Exception{ String targetDate = "01/01/2022"; // 直接指定需求的起始日期 System.out.println("target date is "+targetDate); String [] actual1 = searchStartDateInput.getAttribute("value").split(" "); String actual = actual1[0]; System.out.println("actual app date is "+actual); Assert.assertEquals(targetDate, actual); // 用目标日期做断言 }
关键修改说明
- 替换了原代码中获取当前日期的逻辑,改为固定的2022年1月1日
- 变量名从
today改成targetDate,更贴合实际需求,避免混淆 - 断言部分用新的目标日期和页面实际值对比
内容的提问来源于stack exchange,提问作者Mahi
相关产品推荐
相关产品推荐

