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

时间:2015-06-29 00:36:17

标签: selenium behat mink

我是测试自动化的新手,目前我们正在使用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与水貂和硒。 谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我想出来并希望发布一个解决方案,以防将来有人需要它:

将此添加到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()));
}