В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Я думаю, что это - хорошая идея разделить Ваши файлы. Я обычно использую структуру папок как это:
/myapp/src/ <- my classes
/myapp/tests/ <- my tests for the classes
/myapp/public/ <- document root
В Вашем случае, поскольку включая класс в Вашем тестовом файле, почему не только передают целый путь к включать методу?
include('/path/to/myapp/src/MyClass.php');
или
include('../src/MyClass.php');
Я поместил свои тестовые сценарии затем источник в файле с тем же именем, но .phpt расширением. Сценарий развертывания просто отфильтровывает *.phpt, когда они продвигают к производству.
Ответ Brian Phillips не вполне заходит достаточно далеко, по моему опыту. Вы не знаете то, что - текущий каталог, когда Ваши тесты запущены PHPUnit. Таким образом, необходимо сослаться на полный путь тестового файла класса в set_include_path () выражение. Как это:
set_include_path(get_include_path() . PATH_SEPARATOR .
dirname(__FILE__) . "/../src");
Этот фрагмент может быть помещен в свой собственный заголовочный файл SetupIncludePath.php и включен в тестовые файлы с 'require_once', так, чтобы наборы тестов не добавляли путь многократно.
Необходимо изменить include_path PHP так, чтобы он знал, где найти MyClass.php когда Вы include()
он в Вашем модульном тесте.
у Вас могло быть что-то вроде этого наверху Вашего тестового файла (предшествующий Вашему включающий):
set_include_path(get_include_path() . PATH_SEPARATOR . "../src");
Это добавляет Ваш src
каталог на включать путь и должно позволить Вам разделять свой реальный код от Вашего тестового кода.