PhpSpec - имитировать параметр с другим

Я хотел бы знать, что это возможно игнорировать Exception в методе и силе использовать willReturn метод?

У меня есть пример:

Теоретически, Трансформер должен иметь одно и то же имя объекта (через this->getClassName) Но в этом случае, как я могу сделать, потому что мой SimpleEntity а также TransformerInterface не то же самое.

class JsonViewTransformer
{
    private $transformers = [];

    public function testTransformer(View $view)
    {
        $entity = $view->getData();
        $this->getTransformerFromEntity($entity);
    }

    public function addTransformer(TransformerInterface $transformer)
    {
        $this->transformers[$this->getClassName($transformer)] = $transformer;
    }

    private function getTransformerFromEntity($entity)
    {
        $entityName = $this->getClassName($entity);

        if (!array_key_exists($entityName, $this->transformers)) {
            throw new ClassNotFoundException(sprintf('%s does not exist', $entityName), new \ErrorException());
        }

        return $this->transformers[$entityName];
    }

    private function getClassName($object)
    {
        $FQCNObject = get_class($object);
        $objectName = substr($FQCNObject, strrpos($FQCNObject, '\\') + 1);

        return $objectName;
    }
}

В тестовом файле:

function it_returns_json_from_tranformer(View $view, SimpleEntity $entity, TransformerInterface $transformer)
{
    $entity->getId()->willReturn(1);
    $entity->getName()->willReturn('foo');
    $entity->getAge()->willReturn(42);

    $transformer->transform($entity)->willReturn([
        'id',
        'name',
        'age',
    ]);

    $view->getData()->willReturn($entity);

    $this->addTransformer($transformer);
    $this->testTransformer($view);
}

Итак, у меня есть это сообщение об ошибке:

  15  - it returns json from tranformer
      exception <label>[exc:Symfony\Component\Debug\Exception\ClassNotFoundException("P1 does not exist")]</label> has been thrown.

У вас есть идея для такого рода проблем?

0 ответов

Другие вопросы по тегам