Método indefinido no objeto falso implementando uma determinada interface no PHPUnit?

Eu sou novo no teste de unidade e no PHPUnit.

Eu preciso de um mock, em que eu tenho um controle total, implementandoConfigurationInterface interface. O assunto do teste éReportEventParamConverter objeto e teste devem verificar a interação entre meu objeto e a interface.

ReportEventParamConverter objeto (aqui simplificado):

class ReportEventParamConverter implements ParamConverterInterface
{
    /**
     * @param Request $request
     * @param ConfigurationInterface $configuration
     */
    function apply(Request $request, ConfigurationInterface $configuration)
    {
        $request->attributes->set($configuration->getName(), $reportEvent);
    }

    /**
     * @param ConfigurationInterface $configuration
     * @return bool
     */
    function supports(ConfigurationInterface $configuration)
    {
        return 'My\Namespaced\Class' === $configuration->getClass();
    }
}

E esta é a maneira que eu estou tentando zombar da interface:

$cls = 'Sensio\Bundle\FrameworkExtraBundle\Configuration\ConfigurationInterface';
$mock = $this->getMock($mockCls);

Eu preciso simular os valores retornados para dois métodos:getClass() egetName(). Por exemplo:

$mock->expects($this->any())
    ->method('getClass')
    ->will($this->returnValue('Some\Other\Class'))
;

Quando eu crio um novoReportEventParamConverter e testesupports() método, recebo o seguinte erro PHPUnit:

Erro fatal: Chame para o método indefinido Mock_ConfigurationInterface_21e9dccf :: getClass ().

$converter = new ReportEventParamConverter();
$this->assertFalse($converter->supports($mock));

questionAnswers(3)

yourAnswerToTheQuestion