Тестирование формы вводит в PHPUnit

Измените meta на Meta в ProfileForm.

Мета-класс : это просто контейнер классов, который определяет некоторые метаданные, прикрепленные к модели. Он определяет различные параметры, такие как упорядочение, имя таблицы базы данных и т. Д. Включение мета-класса в класс необязательно. Для получения дополнительной информации читайте doc

5
задан Anant Singh---Alive to Die 5 June 2015 в 21:38
поделиться

1 ответ

Смотрите на идею Внедрения зависимости. Вкратце необходимо подать код, в чем это нуждается в противоположность ему, получая данные, в которых это нуждается... Вот пример:

пример без Внедрения зависимости

function sanitize1() {
  foreach($_POST as $k => $v) {
    // code to sanitize $v
  }
}

sanitize1();

пример с Внедрением зависимости

function sanitize2(array &$formData) {
  foreach($formData as $k => $v) {
    // code to sanitize $v
  }
}

sanitize2($_POST);

Видеть различие? В Вашем тесте PHPUnit можно передать sanitize2() ассоциативный массив по Вашему выбору; Вы ввели зависимость. Принимая во внимание, что sanitize1() вместе с $_POST. $_POST и $_GET массивы помощника так или иначе так в Вашем производственном коде, который можно передать $_GET или $_POST к Вашей функции, но в Ваших модульных тестах Вы трудно кодировали бы некоторые ожидаемые данные.

Пример модульного теста:

function testSanitize() {
  $fakeFormData = array ('bio' => 'hi i\'m arin', 'location' => 'San Francisco');
  sanitize($fakeFormData);
  // assert something
}
16
ответ дан 18 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: