Я обновляюсь до Rails 3.1, и у меня возникла проблема с тестированием модуля, который мы включили в несколько моделей ActiveRecord.Ранее мы использовали тестовую модель, например:
describe FundTransfer do
class TestFundTransfer < ActiveRecord::Base
include FundTransfer
# stub db columns
class << self
def columns() FundReturn.columns; end
end
end
subject { TestFundTransfer.new }
it { should belong_to(:admin) }
it { should belong_to(:bank_account) }
it "is not valid without bank account and moneybookers account" do
fund_transfer = TestFundTransfer.new
fund_transfer.should_not be_valid
end
(полная спецификация: https://gist.github.com/1255960)
Это ломается, потому что не находит таблицу. Я, вероятно, мог бы найти способчтобы заглушить столбцы (как мы делали раньше), но мой вопрос: есть ли у кого-нибудь опыт сделать это лучше? В этой форме мы не можем протестировать все, что связано с сохранением / загрузкой модели.
I 'Я думаю о следующих параметрах:
- создать таблицу с загрязнением основной схемы
- создать таблицу в тесте, прежде чем транзакция будет запущена
- заглушки столбцов(не позволяет сохранять / находить)
Кто-нибудь имеет какой-либо опыт с этим или есть лучшая идея?
Примечание: Миксин задает belongs_to
ассоциации, поэтому я не могу использовать ActiveModel
модули для моей тестовой модели, это должна быть модель ActiveRecord
.