В настоящее время я использую Cucumber для определения наших тестовых примеров в строковых файлах функций. Интеграционные тесты будут запускаться с заглушкой Wiremock, которая рассчитывает дату, например: "{{now offset = '+ 15 minutes'}}"
Я хочу проверить, что дата и время, которые я получаю из Заглушка wiremock отображается правильно, дата и время правильные, а таблица упорядочена правильно на основе этой даты и времени.
В настоящее время у нас есть собственная реализация, чтобы получить +/- X дней. Это использует некоторое регулярное выражение и поддерживает только дни. Я могу расширить этот код и добавить к нему минуты, но я бы предпочел использовать библиотеку или стандартизированный фрагмент кода, который может анализировать все вычисления даты. Мне не удалось его найти, и я хотел бы получить несколько предложений, как решить эту проблему.
Чтобы дать вам представление о том, с чем я работаю в данный момент:
function stringReplaceNow(string) {
var regex = /<now:([A-Z-]+):?((\+|-)([0-9]+))?>/gi;
return string.replace(regex, function (match, format, shouldModify, modification, modAmount) {
if (modification === '+') {
return moment().add(modAmount, 'days').format(format);
} else if (modification === '-') {
return moment().subtract(modAmount, 'days').format(format);
}
return moment().format(format);
});
}
В наших тестах с огурцом он используется так: он получает текущую дату и соответственно вычитает дни:
| Name | Datetime | State |
| Johnson | <now:DD-MM-YYYY:-2> | Processing |
| Minter | <now:DD-MM-YYYY:-3> | Processing |
| Brown | <now:DD-MM-YYYY:-5> | Done |