@CenterJoin

Как работают Юнит тесты?

Как работают Юнит тесты? (в частности php) Если я провоцирую ошибку в коде, тесты этого не показывают.
Пример:
Тест:
public function testFindAll(): void
    {
        self::bootKernel();
        $repository = static::$kernel->getContainer()->get(PropertyInMemoryRepository::class);

        $this->assertInstanceOf(PropertyCollection::class, $repository->findAll(1, 1, 1));

        $count = $repository->findAll(1, 1, 1)->count();

        $this->assertSame(3, $count);
    }


PropertyInMemoryRepository:
public function findAll(int $groupId, int $page, int $limit, array $filters = []): PropertyCollection
    {
        $propertyCollection = new PropertyCollection();

        foreach ($this->propertyCollection as $property) {
            if ($property->getGroupIdValue() === $groupId) {
                $propertyCollection->append($property);
            }
        }

        return $propertyCollection;
    }


Строка в контроллере со спровоцированной ошибкой:
$dProperties = $this->propertyRepository->findAll($this->getUser()->getGroupId(), 'string', $limit, $filters);


На выходе у меня Job succeeded
  • Вопрос задан
  • 31 просмотр
Решения вопроса 1
Ошибка в том, что вы в контроллере передаёте строку вторым аргументом?
Если да, то это отловит тест контроллера, а не метода findAll, тот тест никакой магией не узнает, что вы будете передавать в каком-то другом месте невалидные аргументы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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