Я хотел бы получить отзывы о том, что является одним из моих первых тестовых примеров PHPUnit.
Предметом испытаний является простой класс конфигурации в приложении PHP. Он используется для создания, хранения и получения настроек конфигурации.
Настройки хранятся в массиве внутри класса. Каждый параметр имеет следующие свойства:
ключ (например, frontend:menu:bgcolor
)
тип (один из string
, int
, hexcolor
, boolean
)
значение (смешанное)
только для чтения (логическое значение)
Каждый параметр должен быть создан первым. При создании каждому параметру присваивается тип, флаг только для чтения (по умолчанию false) и значение по умолчанию.
Методы класса:
public function create($key, $value, $type = "string", $read_only = false)
public function set($key, $value)
public function get($key)
Тесты, которые я выполняю:
(ok) и (fail) - ожидаемые результаты теста.
Создать параметр с именем test
с типом string
с начальным значением xyz
(ok)
Загрузите настройку test
и ожидайте возвращаемое значение xyz
(ок)
Установите настройку test
на abc
(ок)
Загрузите настройку test
и ожидайте возвращаемое значение abc
(ок)
Загрузить настройку töst
(ошибка, ключ не существует)
Создайте параметр с именем test_read_only
с типом string
, начальным значением Mary had a little lamb
и флагом «только для чтения», установленным в значение true (нормально)
Установите настройку с именем test_read_only
на Peter had a big lamb
(ошибка, ключ только для чтения)
Загрузите параметр с именем test_read_only
и ожидайте возвращаемое значение Mary had a little lamb
(ок)
Создайте параметр с именем test_integer
с типом int
, начальным значением 5
и флагом «только для чтения», установленным в true (ok)
Создайте параметр с именем test_integer_second
с типом int
и начальным значением 5.23049505906
(ошибка, начальное значение имеет неправильный тип)
Создать параметр с именем test_weird
с типом sdasfäödsf#ädfsaö
(сбой, тип не найден)
Установите настройку с именем test_weird
на Peter had a little lamb
(ошибка, ключ не определен)
Вопросы:
- Имеет ли смысл этот контрольный пример для вас?
- Считаете ли вы это полным контрольным примером?
- Что бы вы сделали по-другому или дополнительно?
Обновление : Предложения, которые дошли до меня, я буду их реализовывать:
- Проверка длины строки
- Тесты с участием остальных типов данных
boolean
и hexcolor
- Тесты именования ключей не нужны сейчас, но будут в будущем.