Я не нашел хорошего способа протестировать методы ApplicationRecord.
Скажем, у меня есть простой метод с именем one
:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
def one
1
end
end
И я хочу это проверить:
describe ApplicationRecord do
let(:it) { described_class.new }
it 'works' do
expect(it.one).to eq 1
end
end
Неудивительно, что это умирает с NotImplementedError: ApplicationRecord is an abstract class and cannot be instantiated.
Поэтому я попробовал предложение анонимного класса в Тестирование абстрактных классов в Rspec:
let(:it) { Class.new(described_class).new }
И это умирает с TypeError: no implicit conversion of nil into String
, предположительно потому, что имя таблицы записи равно нулю.
Может ли кто-нибудь предложить хороший и простой способ протестировать методы ApplicationRecord? Надеюсь, что тот, который не вводит зависимости от других классов в моем приложении и не подключается к внутренним компонентам ActiveRecord?