Можно ли динамически изменять приспособление между методами тестирования в CakePHP?
-
09-06-2019 - |
Вопрос
Возможно ли изменение приспособления между методами испытаний?Если да, то как я могу это сделать?
Мой синтаксис для решения этой проблемы :
В фреймворке cakephp я создаю тесты для поведения, которое настраивается путем добавления полей в таблицу.Предполагается, что это будет работать так же, как добавление полей "создано" и "изменено" автоматически заполнит эти поля при сохранении.
Чтобы проверить это, я мог бы создайте десятки комбинаций приспособлений / моделей для тестирования различных настроек, но было бы в сто раз лучше, быстрее и проще просто менять "форму" приспособления в зависимости от методов тестирования.
Если вы не знакомы с Фреймворк CakePHP, возможно, вы все еще можете помочь мне, поскольку это использует Самый простой
Редактировать:перефразированный вопрос стал более общим
Решение
Я не знаком конкретно с CakePHP, но, похоже, подобные вещи происходят где угодно с fixtures.
В rails нет встроенного способа, по крайней мере, для того, чтобы это произошло, и я полагаю, что ни в CakePHP, ни где-либо еще, потому что вся идея приспособления заключается в том, что оно исправлено
Есть 2 "достойных" обходных пути, о которых я знаю
Напишите
changefixture
метод, и непосредственно перед выполнением вашего asserts /etc запустите его с параметрами того, что нужно изменить.Он должен пойти и обновить базу данных или что-то еще, что нужно сделать.Вообще не используйте приспособления и используйте какую-нибудь фабрику объектов или генератор объектов для создания ваших объектов каждый раз
Другие советы
Это не ответ на мой вопрос, а решение моего вопроса.
Вместо того чтобы использовать несколько приборов или менять их, я редактирую массивы схемы Model :: _, удаляя поля, без которых я хотел протестировать. Это приводит к тому, что модель действует так, как если бы полей не было, но я не уверен, что это 100% тест. Я не думаю, что это для всех случаев, но это работает для моего примера.