Я пытаюсь войти в модульное тестирование для очевидных положительных результатов, которые он представляет, и я пытаюсь написать Unit test для класса, который я написал на днях. (Я знаю, что это противоположность TDD, пожалуйста, несите меня)
Мой класс, Image
, используется вместе с некоторыми другими для обработки изображений.
Image
по существу обертывает ресурс изображения GD и сохраняет данные вместе с ним. Например, экземпляр Image
всегда будет содержать текущее состояние, то есть его новую ширину/высоту при изменении размера, исходные данные изображения и т.д.
Класс Image
также содержит методы для <
- Создание себя из файла, строковых данных или URL-адресов, например.
$image->loadFromPath()
- Создание нового ресурса изображений GD из свойств текущего экземпляра
Image
, например. для изменения размера изображения для сохранения фоновой прозрачности и т.д. - Клонирование ресурса изображений GD для использования в классах манипуляции
То, с чем я борюсь, - это как Unit test этот класс правильно с PHPUnit. Я кое-что прочитал, и у меня есть несколько противоречивых идей о том, как подойти к нему, и я не знаю, какое право. Я,
- Напишите тест для каждого метода класса. Я где-то читал, что должен проверять каждый метод. Однако некоторые из методов запускают другие (правильно, поэтому я могу добавить), поэтому у вас есть цепочка зависимости. Но я также читал, что каждый Unit test должен быть независимым от другого. Итак, что мне делать, если это так?
- Напишите каждый тест как маршрут использования класса. Я также где-то читал, что каждый тест должен представлять собой 1 маршрут пути/использования, который вы можете взять с классом. Поэтому, если вы охватите каждое использование, вы в конечном итоге получите полный охват кода.
Итак, какая из них правильная, если таковая имеется?