使用PSR-4自動加載與作曲家,當我試圖測試這個類:使用PHPUnit的名稱已在使用致命的錯誤使用作曲家的自動加載PHPUnit中
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;
}
}
:
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());
}
}
我收到此誤差在控制檯
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
這是文件/文件夾結構:
src
`-- User
|-- Contracts
| |-- User.php
| `-- UserId.php
|-- User.php
`-- UserId.php
tests
`-- User
|-- UserIdTest.php
`-- UserTest.php
我已經做了很多關於這個問題的搜索,但是我還沒有找到任何解決方案。
- PHP版本:5.6.13-1 + deb.sury.org〜可信賴+ 3
- PHPUnit的版本:5.0.3
- 操作系統:Ubuntu的LTS 14.04.3
如何我可以解決這個問題嗎?