小编Fed*_*ddu的帖子

在PHPUnit中使用composer的自动加载已经使用名称致命错误

当我尝试测试这个类时,使用PSR-4自动加载Composer:

namespace User;

use User\Contracts\UserId;
use User\Contracts\User as UserContract;

class User implements UserContract
{
    private $id;

    public function __construct(UserId $id)
    {
        $this->id = $id;
    }

    public function getId()
    {
        return $this->id;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用PHPUnit:

use User\Contracts\UserId;

class UserTest extends \PHPUnit_Framework_TestCase
{
    public function test_the_identifier_can_be_used_as_string()
    {
        $identifier = m::mock(UserId::class);
        $identifier->shouldReceive('__toString')->once()->andReturn('foo');

        $user = new User($identifier);

        $this->assertSame('foo', (string) $user->getId());
    }
}
Run Code Online (Sandbox Code Playgroud)

我在控制台中收到此错误

PHP Fatal error:  Cannot use User\Contracts\UserId as UserId because the name is already in use in /src/User/User.php on line 5
Run Code Online (Sandbox Code Playgroud)

这是文件/文件夹结构: …

php phpunit composer-php

2
推荐指数
1
解决办法
6563
查看次数

标签 统计

composer-php ×1

php ×1

phpunit ×1