【问题标题】:Updating phpunit from v5.1 to v6.5将 phpunit 从 v5.1 更新到 v6.5
【发布时间】:2018-08-28 12:10:01
【问题描述】:

我正在将一个系统的 phpunit 从 5.1 更新到 6.5,但是从更新开始,所有成功运行的测试开始失败。

错误是:

1) 测试\Administracao\Controller\AlunoControllerTest::testModuloController TypeError:传递给 SebastianBergmann\GlobalState\Snapshot::__construct() 的参数 3 必须是 boolean 类型,给定 null,在第 2177 行的 /usr/share/php/PHPUnit/Framework/TestCase.php 中调用

我查找了迁移文档,但没有找到。经历过这一切的人可以帮助我吗?或者您知道进行迁移的任何文件吗?

有问题的测试代码文件是:

<?php

namespace Tests\Administracao\Controller;

use Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase;
use PHPUnit\Framework\TestCase;
use Domain\Model\Instituicao\Instituicao;
use Domain\Model\Usuario\Administrador;
use Domain\Model\Usuario\Email;
use Domain\Model\Usuario\Senha;


/**
 * Classe com métodos comuns para todos os controllers da api
 */
abstract class AbstractControllerTest extends TestCase
{   
    private $instituicao;

    public function setUp()
    {
        $this->setApplicationConfig(include './config/application.config.php');
        parent::setUp();

        $serviceManager = $this->getApplicationServiceLocator();

        $this->instituicao = $serviceManager->get('InstituicaoRepository')->getByUrl('uov');
    }

    public function auth()
    {
        // simula o repositório para não fazer modificações no banco
        $session = $this->getMock('Session', array('offsetGet', 'offsetUnset'));

        $usuario = $this->novoUsuario();

        $session->expects($this->any())
                ->method('offsetGet')
                ->willReturn($usuario);

        $serviceManager = $this->getApplicationServiceLocator();
        $serviceManager->setAllowOverride(true);
        $serviceManager->setService('Session', $session);
    }

    /**
     * Cria um novo usuário
     */
    private function novoUsuario()
    {
        $email = new Email('teste@email.com');
        $senha = new Senha('123456');       
        $usuario = new Administrador('Teste', $email, $senha, $this->instituicao);
        return $usuario;
    }
}

还有:

<?php

namespace Tests\Administracao\Controller;

use Doctrine\ORM\Tools\Pagination\Paginator;

/**
 * Testa os métodos do controller do Aluno
 */
class AlunoControllerTest extends AbstractControllerTest
{
    public function testModuloController()
    {
        $this->dispatch('/uov/alunos');
        $this->assertModuleName('Administracao');
        $this->assertControllerName('Administracao\Controller\AlunoController');
        $this->assertControllerClass('AlunoController');
        $this->assertMatchedRouteName('instituicao/alunos');
    }
}

【问题讨论】:

    标签: php phpunit migration


    【解决方案1】:

    我发现我的 ZendFramework(2.2.) 版本和新版本的 phpUnit(6.5.) 不兼容。所以我不得不保留前一个。

    【讨论】:

      猜你喜欢
      • 2014-10-12
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 2017-08-28
      • 2017-04-25
      • 2012-12-15
      • 2016-08-16
      • 2014-03-31
      相关资源
      最近更新 更多