Почему AliceBundle Fixture DateTime дает мне неожиданное значение? - PullRequest
0 голосов
/ 24 сентября 2019

В настоящее время я работаю над проектом, в котором я создаю приборы с помощью Alice-bundle для запуска тестов, чтобы убедиться, что мои API-конечные точки работают правильно.Все работает нормально, за исключением свойств DateTime.

Независимо от того, какую строку я передаю, например: <dateTime('2019-09-23 14:00:00')>, она всегда дает мне неправильную дату и время, обычно что-то вроде: 1998-10-25T14:29:45+01:00.

Даже использование <dateTime('now')> не работает - оно также дает мне дату и время до 2000-х годов, хотя это именно то, что некоторые примеры, которые я нашел, используют.

Приспособлениеможет выглядеть примерно так:

Path\To\Task\Entity: my_task: title: 'My tasks' description: 'These are all the tasks just for me!!!' startsAt: <dateTime('now')> endsAt: <dateTime('now')> createdBy: '@some_higher_user'

В идеале я просто хочу передать ей строку, чтобы я мог определить и дату, и время и убедиться, что она работает правильно, в нужном формате.

И помощь будет принята.

Ответы [ 2 ]

2 голосов
/ 24 сентября 2019

Глядя здесь https://github.com/nelmio/alice/blob/master/doc/advanced-guide.md#functions мы читаем:

Функция может быть функцией Faker или PHP (или зарегистрированной в глобальной области видимости).

Поэтому я бы рекомендовал попробовать встроенную функцию PHP, которая создает \DateTime объект

<date_create_from_format ( 'Y-m-d H:i:s' , '2019-09-23 14:00:00')>
// or
<date_create('now')>
1 голос
/ 24 сентября 2019

Вот как это работает.Функция <dateTime()> принимает аргумент с именем $max.Поэтому он создает дату между начальной датой (не уверен, какая именно, вероятно, что-то в диапазоне 1900 года или около того) и этим $max аргументом.

Полагаю, вы захотите использовать <dateTimeBetween()>который принимает startDate и endDate для создания фиктивной даты между ними.Поэтому, я полагаю, если startDate = endDate, тогда вы получите желаемую фиксированную дату.

Взгляните на fzaninotto / Faker документацию библиотеки.Это библиотека, используемая AliceBundle для фактического подделывания данных.Там вы можете увидеть, какие функции, связанные с DateTime, вы можете использовать.

...