Я новичок в модульном тестировании и пытается выполнить проверку модели старой заявки zend, использующей формы.Узел тестирования устаревшего кода
Внутри одной из форм он создает экземпляр второго класса, и я изо всех сил пытаюсь понять, как я могу издеваться над зависимым объектом. Форма гласит:
class Default_Form_Timesheet extends G10_Form {
public function init() {
parent::init();
$this->addElement('hidden', 'idTimesheet', array('filters' => array ('StringTrim'), 'required' => false, 'label' => false));
$this->addElement('checkbox', 'storyFilter', array('label' => 'Show my stories'));
$user = new Default_Model_User();
$this->addElement('select', 'idUser', array('filters' => array('StringTrim'), 'class' => 'idUser', 'required' => true, 'label' => 'User'));
$this->idUser->addMultiOption("","");
$this->idUser->addMultiOptions($user->fetchDeveloper());
...
......
Моя проблема возникает, когда вызов на $ user-> fetchDeveloper(). Я подозреваю, что у него есть что-то недоумение с насмешливыми объектами и инъекцией зависимостей, но любая оценка будет оценена. My Fail unit test выглядит следующим образом:
require_once TEST_PATH . '/ControllerTestCase.php';
class TimesheetValidationTest extends ControllerTestCase {
public $Timesheet;
public $UserStub;
protected function setUp()
{
$this->Timesheet = new Default_Model_Timesheet();
parent::setUp();
}
/**
* @dataProvider timesheetProvider
*/
public function testTimesheetValid($timesheet) {
$UserStub = $this->getMock('Default_Model_User', array('fetchDeveloper'));
$UserStub->expects($this->any())
->method('fetchDeveloper')
->will($this->returnValue(array(1 => 'Mickey Mouse')));
$Timesheet = new Default_Model_Timesheet();
$this->assertEquals(true, $Timesheet->isValid($timesheet));
}
Мой поставщик данных - это отдельный файл.
Он заканчивается в командной строке без вывода, и я немного в тупике. Любая помощь будет принята с благодарностью.
Вы можете издеваться над 'init()', или вам нужно убедиться, что внешний класс будет найден – hek2mgl
Спасибо за отзыв.Класс User найден, он вызван в «fetchDeveloper», который, по-видимому, вызывает проблему. –