Afinogen
@Afinogen
PHP разработчик

Как добавить данные в бд перед приемочным тестированием?

Недавно начал вникать в тестирование, использую Codeception. Не понятно как правильно использовать БД.
Есть такой функционал - админ, добавляет запись, пользователи под ней оставляют комменты. Чтобы оставить комментарий надо знать id записи.
В Unit тестах, я перед каждым тестом создавал в бд запись (через модули обращался к ZF2, далее к мапперу бд). И точно знал номер.
Если я при приемочном тесте подключаю модуль ZF2, то появляется ошибка
Fatal error: Cannot redeclare _generated\AcceptanceTesterActions::switchToIframe()

Конфиг acceptance.suite.yml
class_name: AcceptanceTester
modules:
    enabled:
        - WebDriver
        - \Helper\Acceptance
        - Db
        - ZF2
    config:
        WebDriver:
            url: 'http://test.ru/'
            browser: chrome
            port: 4444

Просто грохнуть эту строчку не получается, так как при каждом запуске теста она добавляется, похоже автогенерация.
В настройках можно указать дамп бд, но это не как-то не гибко... Так как, у записи может быть несколько параметров, например, как дата и каким группам пользователей можно добавлять комментарии. И опять же сложность в получении номера записи.
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
Afinogen
@Afinogen Автор вопроса
PHP разработчик
Оказалось все довольно просто
есть функция
haveInDatabase
она добавляет данные в базу, после теста автоматически вызывается функция удаления добавленных данных.

P.S. Не явно название, пока не полез в код - не понял, что она делает. Почему нельзя назвать add/insert?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы