验证页面的日历视图是否显示当前月份和日期 - behat 测试自动化脚本

Validate the calendar view of a page displays current month and date - behat test automation script

我是测试自动化的新手,目前我们正在使用 behat + mink + selenium 的组合来自动化测试。我想检查日历视图是否显示正确的月份和日期。这是我的小黄瓜脚本:

Feature: Users see the current date when the calendar view is clicked! 
@javascript
Scenario: As a registered user, when I click on calendar, the page should display current date (mm-dd)
    Given I go to "URL"
    When I fill in "username" with "username"
    When I fill in "password" with "password"
    Then I press "edit-submit"
    Then I follow "calendar"
    Then I should see "June 28"

这是我在 FeatureContext.php 文件中添加的:

public function getCurrentDate() {
    return $this->currentDate()->format('Y-m-d');
}

protected function currentDate() {
    return new Date();
}

既然这个测试应该是自动化的,我想将我脚本中的最后一步更改为如下内容:

Then I should see "current date (mm-dd)"

我不确定这是否可行,但正如我之前所说,我是新手,我不确定我将如何实施这样的事情。我将 Behat 与 mink 和 selenium 一起使用。 谢谢您的帮助!

我想通了,想 post 一个解决方案,以防将来有人需要它:

将此添加到您的 FeatureContext.php 文件中。 每个函数顶部的注释解释了它的作用!

第一个函数:

// call currentDate() to fetch and format the date (month year)
public function getCurrentDate() {
    return $this->currentdate = $this->currentDate()->format('F Y');
}

第二个函数:

// Get current date time
protected function currentDate() {
    return new DateTime();
}

第三个函数:

//month year date matcher does not take any arguments
/**
 * Checks, that page contains specified text.
 *
 * @Then /^match current month year with page$/
 */
public function MonthYearDateMatcher()
{
    $this->assertSession()->pageTextContains($this->fixStepArgument($this->getCurrentDate()));
}