3个月前的黄瓜/ Java验证结果日期

问题描述 投票:0回答:1

我是Cucumber / java框架的新手。我正在尝试验证网页上包含3个月前的月份的信息。因此,例如:1.我搜索一些信息。2.我过滤了3个月。3.做一个断言,以确认我的过滤器显示的是3个月前的结果。网页中有一列显示日期mm / dd / yy。因此,我需要创建一种方法来验证日期是3个月前的月份和/或年份的有效性?

    @Then("Verify that the filtered results display information dated back 90 days")
        **public void verifyFilterBuilds90Days() { assert dashBoardPage.verifyFilterBuilds90Days();** }


    public int verifyFilterBuilds90Days(){
            Calendar calMinus3Months = Calendar.getInstance();
            calMinus3Months.add(Calendar.MONTH, -3);
            return Calendar.MONTH;
        }
css selenium gherkin cucumber-java
1个回答
0
投票

你在追求这样的东西吗?

    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("MM/dd/uu");

    String dateFromWebPage = "10/21/19";

    String expected = LocalDate.now(ZoneId.systemDefault())
            .minusMonths(3)
            .format(dateFormatter);

    if (dateFromWebPage.equals(expected)) {
        System.out.println("They agree");
    } else {
        System.out.println("They do not agree");
    }

当我刚运行此代码时,输​​出为:

他们同意

不过要注意:

  • 如果在网页之间生成了午夜通行证,并且您运行测试的时间不再相同,则日期不一致。
  • 如果网页和您的计算机使用不同的时区,则日期可能不会总是一致。
  • 最糟糕的是,“ 3个月前”的定义并不总是很明确。从5月31日算起3个月了?不能是2月31日,因为2月只有28或29天。

我想防弹测试会在1到3或4或5个日期之间生成,考虑到这些要点就可以接受,并且只要其中一个确实打印在网页上就可以满足。

© www.soinside.com 2019 - 2024. All rights reserved.