Только начал работать с фреймворком PHPUnit и пытаюсь включить его в существующий код.
Скажем, я класс Math
, и я написал, как показано ниже,
<?php
/**
*
* Date: 19/12/2017
* Time: 16:22
*/
include_once 'include/testing_namespace.php';
class Math extends TestCase {
function isEven($x) {
if ($this->assertInternalType(IsType::TYPE_NUMERIC)) {
if ($x % 2 == 0) {
return true;
} else {
return false;
}
}
}
function isOdd($y) {
if ($this->assertInternalType(IsType::TYPE_NUMERIC)) {
if ($y % 2 >= 1) {
return true;
} else {
return false;
}
}
}
}
И у меня есть файл php include/testing_namespace.php
вот так,
<?php
namespace testing;
use PHPUnit\Util\PHP;
use PHPUnit\Framework\Constraint;
use PHPUnit\Framework\Constraint\IsType;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Assert;
$path = $_SERVER['APPL_PHYSICAL_PATH'];
// class includes, may need to branch these off into separate include files
include_once $path . '\vendor\phpunit\phpunit\src\Framework\Assert\Functions.php';
include_once $path . '\vendor\phpunit\phpunit\src\Framework\TestCase.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsEqual.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsFalse.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsEmpty.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsNull.php';
?>
Допустим, я тестирую так,
$m = new testing\Math();
$integer1 = 8;
var_dump($m->isEven($integer1));
die();
(казалось, какое-то время это работало нормально)
Но предположим, что файл, который я тестирую, имеет объявленную функцию, также называемую isEven
, которая не находится в пространстве имен, но также включена в файл.
Допустим, у oldfuncs/OldMath.php
также есть функция isEven()
с таким же именем.
Первый вопрос: правильно ли я использую здесь пространства имен? Также мне разрешено включать файл с объявлением пространства имен, и будет ли это помещать файл, который включает его, в это пространство имен?