PHP: como testar um módulo no estilo Python

Testar uma classe é fácil de fazer com Python, adicionando a seguinte condição ao final do arquivo:

if (__name__ == '__main__'):
# module test

Desta forma é possível testar a classe executando o arquivo como um script.
Esta parte do código não será executada em vez disso se o arquivo for importado como um módulo.

Bem, você pode fazer a mesma coisa com o PHP usando a função debug_backtrace !

if (!debug_backtrace ()) {
// module test
}

Seguindo um exemplo completo:

// Person.php
<?php
class Person {
private $name;
public function __construct ($name) {
$this
->name = $name;
}
public function introduce () {
echo
'Hello, my name is ' . $this->name;
}
}

if (!debug_backtrace ()) {
$wilk
= new Person ('Wilk');
$wilk
->introduce ();
}
?>

Quando Person.php for executado diretamente, ele imprimirá: ‘Olá, meu nome é Wilk’, mas se incluirmos a classe Person em outro arquivo, será o seguinte:

// Developer.php
<?php
class Developer extends Person {
private $language;
public function __construct ($name, $language) {
$this
->language = $language;
parent
::__construct ($name);
}
public function introduce () {
echo $this
->name ' knows ' . $this->language;
}
}

if (!debug_backtrace ()) {
$wilk
= new Developer ('Wilk', 'PHP');
$wilk
->introduce ();
}
?>

ele irá imprimir: Wilk conhece PHP em
vez de: Olá, meu nome é WilkWilk conhece PHP

Agora, vá e escreva classes testáveis!