Как протестировать корпоративный проект Symfony? - PullRequest
3 голосов
/ 14 ноября 2009

Я работаю над огромным проектом на моей работе. У нас есть около 200 таблиц базы данных, соответственно огромное количество моделей, действий и так далее.

Как мне начать писать тесты для этого?

Моя самая большая проблема в том, что с symfony вы можете тестировать с использованием библиотеки lime, что отлично. Но большая часть кода записывает, удаляет или делает другие вещи с базой данных. Итак, как я могу протестировать модель, не взаимодействуя с базой данных?

Я хочу провести юнит-тесты, потому что у меня были проблемы с ошибками в моем коде из-за рефакторинга функций, но я даже не знаю, как начать. Примеры из документации охватывают только очень маленькую функцию. Как это выглядит, когда файл действия содержит более 700 строк кода?

Ответы [ 2 ]

2 голосов
/ 14 ноября 2009

Отличный вопрос .. Я лично сталкивался с этим повсюду.

Вот что я нашел до сих пор:

1) Получить базу данных разработчиков. НЕ проверять базу данных prod!

2) Звучит банально, но начните с малого и просто.

3) Я не знаю, какое у вас поле (база данных электронной торговли, база данных контактов и т. Д.), Но я говорю, что это база данных электронной коммерции. Начните с тестирования, создав несколько моделей заказов и сохранив их. Может быть, воссоздать реальный заказ в тестовом жгуте, чтобы сохранить его в БД. Теперь вы можете быстро создать 1000 заказов для выполнения тестов. ПУТЬ быстрее, чем вручную проверять вещи. Для максимальной пользы создайте модель того, над чем вы сейчас работаете, чтобы вы могли использовать его во время тестирования.

4) Теперь начните тестировать различные методы, которые предоставляет ваша модель. Опять же, придерживайтесь тех, которые имеют отношение к тому, что вы в настоящее время пытаетесь исправить / работать с. Не беспокойтесь о тестировании всего, просто протестируйте некоторые вещи и убедитесь, что вы можете повторить свои тесты.

5) Нужно проверить контроллеры? Круто, теперь у вас есть модель для работы, с которой вам наплевать, потому что она ненастоящая ... Нужны некоторые варианты? Создайте больше наборов тестов, которые будут создавать различные модели для удовлетворения ваших потребностей. Модели могут быть сложными, но вы должны быть в состоянии написать некоторые тестовые функции, которые создают варианты ваших различных моделей. Затем запустите свои контроллеры против этих ...

6) Продолжайте отрываться при покрытии кода.

ВНИМАНИЕ: будьте осторожны, чтобы быть единственным, кто проводит модульные тесты. Вы быстро станете наиболее эффективным средством решения проблем, но тогда люди попытаются заставить вас все исправить ...

0 голосов
/ 14 ноября 2009

700 строк в одном действии контроллера? Тестирование позволяет выявить проблемы в вашем собственном коде другими способами, чем очевидные утверждения. Если что-то сложно проверить по какой-либо причине, значит, что-то не так с кодом.

Когда вы начинаете тестировать проект, большой или маленький, основное внимание должно уделяться покрытию кода. Сначала не беспокойтесь о крайних случаях (если ситуация не требует этого). Когда я начинаю тестировать проект, мне нравится начинать с моделей, так как они самые простые. Оттуда перейдем к тестированию контроллера и посмотрим, как оно пойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...