Ответ 1
PHPUnit использует конструктор для инициализации базового TestCase
Вы можете увидеть метод конструктора здесь: https://github.com/sebastianbergmann/phpunit/blob/6.1.3/src/Framework/TestCase.php#L328
public function __construct($name = null, array $data = [], $dataName = '')
Вы не должны использовать конструктор, потому что он используется phpunit и любые изменения подписи и т.д. Могут сломать вещи.
Вы можете использовать специальные setUp
и setUpBeforeClass
которые phpunit будет вызывать для вас.
use PHPUnit\Framework\TestCase;
class XTest extends TestCase
{
function static setUpBeforeClass()
{
// Called once just like normal constructor
// You can create database connections here etc
}
function setUp()
{
//Initialize the test case
//Called for every defined test
}
function testX()
{
$this->assertTrue(true);
}
// Clean up the test case, called for every defined test
public function tearDown() { }
// Clean up the whole test class
public static function tearDownAfterClass() { }
}
Документы: https://phpunit.de/manual/current/en/fixtures.html.
Обратите внимание, что setUp
для каждого указанного теста в классе.
Для одиночной инициализации вы можете использовать setUpBeforeClass
.
И еще один совет: запустите ваш phpunit с флагом -v
для отображения следов стека;)