É possível, usando objetos simulados PHPUnit, esperar uma chamada para um método mágico __call (

Eu tenho um objeto simulado em um teste. O objeto real, PageRepository, implementa um método mágico usando __call (); portanto, se você chamar $ pageRepository-> findOneByXXXX ($ value_of_field_XXXX), ele pesquisará no banco de dados os registros correspondentes a esse parâmetro.

Existe uma maneira de zombar desse métod

A chamada de método real ficaria assim:

$homepage = $pageRepository->findOneBySlug('homepage');

O teste ficaria assim:

$mockPageRepository->expects($this->any())
    ->method('findOneBySlug')
    ->will($this->returnValue(new Page()));

Mas isso não funciona - o PHPUnit não identifica a chamada de método. A única maneira de fazer com que ele veja o método é defini-lo explicitamente no PageRepository.

questionAnswers(1)

yourAnswerToTheQuestion