У меня есть базовый класс GenericHelper.php
в каталоге Foo/BarBundle/Helper
Я зарегистрировал его как сервис в Foo/BarBundle/Resources/config/services.yml
:
parameters:
generic_helper.class: Foo\BarBundle\Helper\GenericHelper
services:
generic_helper:
class: %generic_helper.class%
и я могу получить к нему доступ командой, выполнив следующее:
$helper = $this->getContainer()->get('generic_helper');
Теперь я хотел бы протестировать этот класс с помощью PHPUnit; У меня есть следующий код (похож на http://symfony.com/doc/2.0/book/testing.html#unit-tests):
namespace Foo\BarBundle\Tests\Helper;
use Foo\BarBundle\Helper\GenericHelper;
class GenericHelperTest extends \PHPUnit_Framework_TestCase {
public function testSomeMethod() {
$helper = new GenericHelper(); //line 10
$this->assertEquals($helper->someMethod(), SOME_RESULT);
}
}
Запуск PHPUnit приводит к следующей ошибке:
PHP Fatal error: Class 'Foo\BarBundle\Helper\GenericHelper' not found in /DIR/src/Foo/BarBundle/Tests/Helper/GenericHelperTest.php on line 10
Греппинг для 'GenericHelper' дает только несколько результатов:
- Сам класс и Тестовый класс
- файл services.yml
appDevDebugProjectContainer
файлов в app/cache/dev/
, которые имеют все сервисные геттеры
Вопрос (ы) :
- Запрещает ли Symfony PHPUnit напрямую создавать класс обслуживания?
- Есть ли способ сделать это без создания контейнера Symfony и последующего доступа к службе (как здесь сделано: Доступ к контейнеру Symfony 2 через юнит-тест? )? Я имею в виду, это все еще просто базовый класс ...