Раньше я не использовал Symfony 2, но я ожидаю, что вы можете создать необходимые зависимости - или, лучше, смоделировать объекты - и поместить их в контейнер для каждого теста.
КакНапример, скажем, вы хотите проверить TextHelper::spellCheck()
, который должен искать каждое слово с помощью службы словаря и заменять любое неправильное слово.
class TextHelperTest extends PHPUnit_Framework_TestCase {
function testSpellCheck() {
$container = new Container;
$dict = $this->getMock('DictionaryService', array('lookup'));
$dict->expects($this->at(0))->method('lookup')
->with('I')->will($this->returnValue('I'));
$dict->expects($this->at(1))->method('lookup')
->with('kan')->will($this->returnValue('can'));
$dict->expects($this->at(2))->method('lookup')
->with('spell')->will($this->returnValue('spell'));
$container['dictionary'] = $dict;
$helper = new TextHelper($container);
$helper->setText('I kan spell');
$helper->spellCheck();
self::assertEquals('I can spell', $helper->getText());
}
}