Профессиональные unit-тесты с использованием Codeception Framework.
Расположение: common/tests/unit/models/AppleTest.php
Количество тестов: 16
Запуск всех тестов:
php vendor/bin/codecept run commonЗапуск только тестов Apple:
php vendor/bin/codecept run common/tests/unit/models/AppleTest.phpЗапуск с подробным выводом:
php vendor/bin/codecept run common/tests/unit/models/AppleTest.php --verboseПростой скрипт для быстрого тестирования без дополнительных зависимостей.
Расположение: test_apple_standalone.php
Запуск:
php test_apple_standalone.php- ✅ Создание яблока со случайными параметрами
- ✅ Размер нового яблока = 1
- ✅ Яблоко падает с дерева
- ✅ Яблоко на дереве не гниет
- ✅ Нельзя съесть яблоко на дереве (Exception)
- ✅ Можно съесть упавшее яблоко
- ✅ Размер уменьшается после поедания
- ✅ Полное поедание удаляет яблоко
- ✅ Постепенное поедание работает корректно
- ✅ Яблоко гниет через 5 часов
- ✅ Нельзя съесть гнилое яблоко (Exception)
- ✅ Нельзя съесть отрицательный процент (Exception)
- ✅ Нельзя съесть больше 100% (Exception)
- ✅ Нельзя съесть больше, чем осталось (Exception)
- ✅ Метки статуса возвращают правильные значения
- ✅ Пример из задания работает
- PHP 7.4+
- MySQL запущен и доступен
- База данных создана (
apple_db) - Миграции применены (
php yii migrate)
- PHP 7.4+
- MySQL запущен
- База данных создана
Тестовая конфигурация находится в common/config/test-local.php
По умолчанию используется та же БД что и для разработки:
'db' => [
'dsn' => 'mysql:host=localhost;dbname=apple_db',
],common/tests/
├── unit/
│ ├── models/
│ │ ├── AppleTest.php ← Тесты модели Apple
│ │ └── LoginFormTest.php ← Тесты формы входа
│ └── unit.suite.yml
├── _bootstrap.php
├── _data/
├── _output/
└── _support/
php vendor/bin/codecept run unitphp vendor/bin/codecept run unit --coveragephp vendor/bin/codecept run unit common/tests/unit/models/AppleTest.php:testCreateRandomAppleCodeception тесты можно легко интегрировать в CI/CD pipeline:
# .github/workflows/tests.yml
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: php vendor/bin/codecept runДля вывода дополнительной информации используйте:
php vendor/bin/codecept run unit --debugДля вывода trace при ошибках:
php vendor/bin/codecept run unit --verbose --debug