Я пытаюсь пройти тест, который включает в себя выполнение запроса, который возвращает серию имен входа, чтобы проверить, равны ли два теста в тесте.
В прошлом я пытался изменить форматзапрос на прохождение теста, а также редактирование массивов и в итоге он равняется двум массивам.К сожалению, тест по-прежнему не проходит.
Функция, которая выполняет запрос для получения серии дат входа в систему:
public function getLogins(): array
{
return $this->createQuery()
->select('date AS datetime, COUNT(id) as total')
->orderBy('datetime', 'DESC')->groupBy('datetime')
->where('date >= -24 hours')
->getQuery()
->getResult();
}
Это метод в классе теста:
public function testGetLogins()
{
$dateLogins = $this->repository->getLogins();
$this->assertCount(4, $dateLogins, "Four instances");
$this->assertEquals([
["datetime" => new \DateTime("now -3 minutes"), "total" => "1"],
["datetime" => new \DateTime("now -7 days"), "total" => "1"],
["datetime" => new \DateTime("now -1 year"), "total" => "1"],
["datetime" => new \DateTime("now -600 days"), "total" => "1"]
], $logins, "The login instances returned match the expected times");
}
Я ожидаю, что тест пройден, но вместо этого он показывает это:
Результат теста
Ожидаемый и фактический массивы равныпоэтому я не уверен в том, что вызывает сбой теста.