Можно ли динамически изменять приспособление между методами тестирования в CakePHP?

StackOverflow https://stackoverflow.com/questions/37785

  •  09-06-2019
  •  | 
  •  

Вопрос

Возможно ли изменение приспособления между методами испытаний?Если да, то как я могу это сделать?

Мой синтаксис для решения этой проблемы :

В фреймворке cakephp я создаю тесты для поведения, которое настраивается путем добавления полей в таблицу.Предполагается, что это будет работать так же, как добавление полей "создано" и "изменено" автоматически заполнит эти поля при сохранении.

Чтобы проверить это, я мог бы создайте десятки комбинаций приспособлений / моделей для тестирования различных настроек, но было бы в сто раз лучше, быстрее и проще просто менять "форму" приспособления в зависимости от методов тестирования.

Если вы не знакомы с Фреймворк CakePHP, возможно, вы все еще можете помочь мне, поскольку это использует Самый простой

Редактировать:перефразированный вопрос стал более общим

Это было полезно?

Решение

Я не знаком конкретно с CakePHP, но, похоже, подобные вещи происходят где угодно с fixtures.

В rails нет встроенного способа, по крайней мере, для того, чтобы это произошло, и я полагаю, что ни в CakePHP, ни где-либо еще, потому что вся идея приспособления заключается в том, что оно исправлено

Есть 2 "достойных" обходных пути, о которых я знаю

  • Напишите changefixture метод, и непосредственно перед выполнением вашего asserts /etc запустите его с параметрами того, что нужно изменить.Он должен пойти и обновить базу данных или что-то еще, что нужно сделать.

  • Вообще не используйте приспособления и используйте какую-нибудь фабрику объектов или генератор объектов для создания ваших объектов каждый раз

Другие советы

Это не ответ на мой вопрос, а решение моего вопроса.

Вместо того чтобы использовать несколько приборов или менять их, я редактирую массивы схемы Model :: _, удаляя поля, без которых я хотел протестировать. Это приводит к тому, что модель действует так, как если бы полей не было, но я не уверен, что это 100% тест. Я не думаю, что это для всех случаев, но это работает для моего примера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top