Некоторые вопросы по модульному тестированию Rails (с использованием Shoulda + Factory girl) - PullRequest
0 голосов
/ 12 августа 2010
  1. У меня есть пара сложных объектов, которые нужно заглушить (я использую экземпляры драгоценных камней).Где можно централизовать эти заглушки, чтобы сделать их доступными для всех тестов?

  2. Как можно программно очистить БД между тестами без rake: test?Я хочу быстро запускать отдельные тесты через textmate, но при этом произойдет ошибка, так как она не очищает БД между тестами

  3. Тесты работают медленно, так как приходится раскручивать Railsпример.Как ускорить тесты?Особенно во время написания тестов и быстрого запуска изменений

1 Ответ

2 голосов
/ 12 августа 2010

1) Вы можете либо поместить их в test_helper.rb, чтобы сделать их доступными для всех тестов, либо написать свой собственный модуль, содержащий эти методы, а затем включить этот модуль в тесты, для которых требуются эти заглушки.

2) Вы можете добавить Model.destroy_all (или .delete_all в случае необходимости, что будет быстрее) в метод настройки теста, чтобы исключить те модели, которые вам больше не интересны.

Однако, если вывыполнение тестов в транзакциях (и ваша база данных поддерживает транзакции), поэтому вам не нужно очищать какие-либо данные, потому что создание данных и тест будут выполняться в транзакции, которая затем будет откатываться, очищая данные автоматически.

3) Не уверен в этом.У меня была эта проблема, много развивающаяся на Windows, но не на * nix.Вы можете посмотреть какое-то непрерывное тестирование, но обратная связь все еще будет задерживаться.Возможно, стоит изучить причины медленного запуска среды rails - это может быть то, что вы можете пропустить в своей среде тестирования.

...