Specflow - Как передать параметр в описание схемы сценария

Многие решения здесь не учитывали округление. Например:

Событие произошло в 3 часа дня два дня назад. Если вы проверяете в 2 часа дня, он будет показан один день назад. Если вы проверяете в 4 часа дня, он будет показан два дня назад.

Если вы работаете с временем unix, это помогает:

// how long since event has passed in seconds
$secs = time() - $time_ago;

// how many seconds in a day
$sec_per_day = 60*60*24;

// days elapsed
$days_elapsed = floor($secs / $sec_per_day);

// how many seconds passed today
$today_seconds = date('G')*3600 + date('i') * 60 + date('s');

// how many seconds passed in the final day calculation
$remain_seconds = $secs % $sec_per_day;

if($today_seconds < $remain_seconds)
{
    $days_elapsed++;
}

echo 'The event was '.$days_ago.' days ago.';

Это не идеально, если вы беспокоитесь о прыжок секунд и летнее время.

1
задан Subburaj 21 March 2019 в 08:44
поделиться

1 ответ

Нет никакого преимущества в выполнении этого. Просто запишите универсальный заголовок сценария, который объясняет вариант использования:

Scenario Outline: Navigating to the home page
    Given I navigate to <Application>
    Then I should see Home page

Examples:
    | Application    |
    | Stack Overflow |
    | Math Overflow  |

SpecFlow добавит тестовое имя с данными из первого столбца Вашей таблицы в качестве примера:

Screenshot of Visual Studio Test Explorer panel showing test names

0
ответ дан Greg Burghardt 21 March 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: