Можно ли динамически менять прибор между методами тестирования в CakePHP? - PullRequest
1 голос
/ 01 сентября 2008

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

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

В рамках CakePHP я создаю тесты для поведения, которое настраивается путем добавления полей в таблицу. Это предназначено для работы так же, как добавление «созданного» и «измененные» поля автоматически заполняют эти поля при сохранении.

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

Если вы не знакомы с CakePHP framework , вы можете все еще помочь мне, поскольку он использует SimpleTest

Изменить: перефразированный вопрос, чтобы быть более общим

Ответы [ 2 ]

0 голосов
/ 04 сентября 2008

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

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

0 голосов
/ 02 сентября 2008

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

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

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

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

  • Ни в коем случае не используйте приборы, а каждый раз используйте фабрику объектов или генератор объектов для создания ваших объектов

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