Измените meta
на Meta
в ProfileForm
.
Мета-класс : это просто контейнер классов, который определяет некоторые метаданные, прикрепленные к модели. Он определяет различные параметры, такие как упорядочение, имя таблицы базы данных и т. Д. Включение мета-класса в класс необязательно. Для получения дополнительной информации читайте doc
Смотрите на идею Внедрения зависимости. Вкратце необходимо подать код, в чем это нуждается в противоположность ему, получая данные, в которых это нуждается... Вот пример:
пример без Внедрения зависимости
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
}