Как проверить модель, которая не находится в папке моделей с RSpec? - PullRequest
0 голосов
/ 20 января 2011

Я использую гем acts_as_taggable_on и набор обезьян ActsAsTaggableOn::Tag в инициализаторе (config/initializers/acts_as_taggable_on.rb). Я написал спецификацию для своего кода и поместил ее в spec/models/tag.rb, но когда я запускаю rspec spec или autotest, этот файл не включается в запускаемые спецификации. Я также пытался поместить его в каталог, чтобы он соответствовал постоянной иерархии (spec/models/acts_as_taggable_on/tag.rb), но он все еще не работал. Как мне заставить RSpec распознать этот файл спецификаций? Я использую Rails 3.0.3 и RSpec 2.4.0.

Ответы [ 2 ]

1 голос
/ 20 января 2011

Вы должны назвать свой spec-файл как tag_spec.rb. Rspec ожидает, что каждый spec-файл заканчивается на _spec.rb. Папка релевантна только для того, чтобы знать, о чем ваш describe (модель, контроллер, ...). В вашем случае я думаю, что это не имеет значения, и я бы поместил его в spec/lib вместо папки spec/models.

0 голосов
/ 20 января 2011

Почему этот файл в config? Он принадлежит к каталогу lib, потому что это ваш собственный код, который не помещается в каталог app. Когда вам требуется «spec_helper» в вашем тесте, это загружает среду Rails, которая должна загрузить все модели и, следовательно, все файлы, которые требуются моделям (это важная часть), и вы сможете протестировать его таким образом.

...