Как перезагрузить модельный класс в модульном тесте - PullRequest
3 голосов
/ 20 июня 2011

Как перезагрузить класс модели ActiveRecord в модульном тесте?(В Ruby on Rails версии 1.2.6)

У меня есть модульный тест, который запускается нормально при запуске в изоляции, например rake test:recent RAILS_ENV=test.

Модульный тест завершится неудачно при запуске со всемидругие модульные тесты, такие как rake test:units RAILS_ENV=test.

Неудачный модульный тест имеет много связей ActiveRecord с другими моделями ... моделями, которые необходимо перезагрузить перед тем, как запустить неудачный модульный тест.Как мне это сделать?

Обновление

Я нашел способ обойти ошибки диссертации, не перегружая мою модель данных.Тесты теперь выполняются нормально в отдельности или вместе.

1 Ответ

1 голос
/ 20 июня 2011

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

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

Есть ли что-то конкретное, что вы делаете, по вашему мнению, может быть проблематично?

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