Привет, ребята, сейчас я пишу тест для функции внутри класса в моем проекте.
function theTestFunction()
{
$companyMock = $this->createMock(Company::class);
$companyMock->method('getUser')->willReturn(new User());
$companyMock->method('isActive')->willReturn(false);
$companyMock->expects($this->once())->method('setActive')->with(true)->willReturn($companyMock);
$manager = $this->getMockBuilder(CompanyManager::class)
->setMethods(['updateNewsletter'])
->setConstructorArgs([$companyMock])
->getMock();
$manager->expects($this->once())->method('updateNewsletter');
$manager->switchActivation();
}
Но я не понимаю, почему мой метод с заглушкой getUser()
(вызывается в updateNewsletter()
) возвращает ноль, когда я запускаю исходную функцию switchActivation()
, что-то вроде этого
function switchActivation() : Company
{
$this->company = $this->company->setActive(!$this->company->isActive());
$this->company->save();
$this->updateNewsletter();
return $this->company;
}
Эта функция не прошла тест
function updateNewsletter()
{
$user = $this->company->getUser();
// Do some other stuff...
}