You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:55:30