PHPUnit + Symfony 1.4 + Doctrine: лучшая практика загрузки приборов - PullRequest
1 голос
/ 30 ноября 2011

Я пытаюсь получить мои тесты базы данных PHPUnit для моего Symfony 1.4 on Doctrine. К сожалению, я не знаю лучших практик для этого. Все, что я пробую, похоже, имеет недостатки.

Что я уже пробовал:

1. Я позволил своему классу UnitTest наследоваться от PHPUnit_Extensions_Database_TestCase. Затем я работаю с реализацией абстрактных методов getConnection и getDataset. Я бы предпочел настроить мои приборы в yaml. Поэтому я написал несколько файлов (один файл на модель). Загрузка одного файла или нескольких независимых файлов работает, но если у меня есть ключевые ограничения, я действительно должен позаботиться об использовании правильных идентификаторов.

  1. Я использовал стандартный sfPHPUnitBaseTestCase в качестве базового класса и имел

    Doctrine :: LoadData (sfConfig :: получить ( 'sf_test_dir') '/ светильники / book.yml.); Учение :: LoadData (sfConfig :: получить ( 'sf_test_dir') '/ светильники / author.yml.);

в методе установки. Здесь я мог бы использовать метод Доктрины для определения отношений внешних ключей по имени, например

Author:
  Author_1:
    name: Max Mustermann

Book:
  Book_1:
    title: The first book
    Author: Author_1

, который мне действительно нравится, потому что он очень интуитивно понятен.

Но Doctrine :: loadData выполняет только «УДАЛЕНИЕ ИЗ», а не усечение, что вызывает проблемы для моих таблиц поиска, где важны идентификаторы. Решением здесь было бы также поместить идентификаторы в файл фикстур.

Итак, эти тезисы - два моих подхода, оба из которых сработают, но ни один из них не кажется мне идеальным. Есть ли у вас идеи лучшей практики.

Большое спасибо

...