Я потратил часть своего часа, пытаясь создать правильный тест Phpunit для своей функции репозитория, но до сих пор не добился успеха, поэтому я обращаюсь к вам, ребята, за помощью
Я пытаюсьнаписать тест, который проверяет мою функцию хранилища, без подключения к базе данных
У меня есть эта функция хранилища (Symfony 4)
class RequestRepository extends EntityRepository
{
public function getCompletedRequestByName($name)
{
$requestsStatuses = $this->createQueryBuilder('r')
->join('r.domains', 'd', Join::WITH, 'r.id = d.request')
->where('r.name = :name')
->andWhere('r.status = :completed')
->setParameter('name', $name)
->setParameter('completed', 'COMPLETED')
->getQuery()
->getOneOrNullResult();
return $requestsStatuses;
}
}
И это мой тест
public function testGetCompletedRequestByName()
{
$entityM =
$this->getMockBuilder(EntityManagerInterface::class)
->disableOriginalConstructor()
->getMockForAbstractClass();
$classMetaData =
$this->getMockBuilder(ClassMetadata::class)
->disableOriginalConstructor()
->getMockForAbstractClass();
$repo = new RequestRepository($entityM, $classMetaData);
var_dump($repo->getCompletedRequestByName('antrax.com'));
die();
}
И ошибка, которую я получаю:
1) App\Repository\RequestRepositoryTest::testGetCompletedRequestByName
Error: Call to a member function select() on null
Может кто-нибудь помочь мне, как написать тест, который проверяет мою функцию хранилища, без подключения к БД и выполнения каких-либо запросов.Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, и я предоставлю!Спасибо!