Ben php 7 ve Burada PHPUnit 6. ile oynuyorum Yazdığım testtir:PHP Ölümcül hata: Class 'PHPUnit Framework dizge' PHPUnit 6 ve PHP ile bulunmayan 7.0
<?php declare(strict_types=1);
namespace Test;
use DesignPatterns\Observer\User;
use DesignPatterns\Observer\UserObserver;
use PHPUnit\Framework\TestCase;
class ObserverTest extends TestCase
{
public function testChangeInUserLeadsToUserObserverBeingNotified()
{
$observer = new UserObserver();
$user = new User();
$user->attach($observer);
$user->changeEmail('[email protected]');
$this->assertCount(1, $observer->getChangedUsers());
}
}
Denedim Bu testi çalıştırmak için, aşağıdaki hata iletisi aldım:
{
"require": {
"phpunit/phpunit": "^6.0"
},
"autoload": {
"psr-4": {"DesignPatterns\\": "src/"}
}
}
: Ben besteci ile PHPUnit yüklü
PHP Fatal error: Class 'PHPUnit\Framework\TestCase' not found in /home/.../.../Test/ObserverTest.php on line 9
, burada benim composer.json dosya içeriğiPHPUnit 6 documentation'a göre, testleriniz artık PHPUnit_Framework_TestCase yerine PHPUnit \ Framework \ TestCase 'i genişletiyor.
Otomatik yükleme ile ilgili bir sorun olmadığını biliyorum. Aslında, PHPUnit \ Framework \ TestCase'i PHPUnit_Framework_TestCase ile değiştirirseniz, yalnızca iyi çalışır, ancak bu sözdiziminin neden çalışmadığını merak ediyordum.
Google, stackoverflow ve PHPUnit'in github deposunda biraz araştırma yaptım, ancak hiçbir şey bulamadım.
Ben excuting edildi:
src/
├── DataMapper
│ ├── StorageAdapter.php
│ ├── UserMapper.php
│ └── User.php
├── Observer
│ ├── UserObserver.php
│ └── User.php
Test/
├── DataMapperTest.php
└── ObserverTest.php
satıcınıza git ve phpunit var mı, bak yoksa –
test dosyası src klasöründe mi? eğer evet, isim alanında DesignPatterns son ekine sahip olmalı? – Matteo
Merhaba, evet, phpunit var. – romaind