我还没有找到测试ApplicationRecord方法的好方法。如何在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.
所以我尝试了匿名上课建议Testing abstract classes in Rspec:
let(:it) { Class.new(described_class).new }
而这种死亡与TypeError: no implicit conversion of nil into String
,大概是因为记录的表名是零。
任何人都可以提出一个好的,简单的方法来测试ApplicationRecord方法?希望有一个不会在我的应用程序中引入对其他类的依赖关系,并且不会在ActiveRecord内部驻留?
是的!就个人而言,我避免担忧(我认为这有很好的辩论)。但是,我同意远离ActiveRecord上的'abstract_class'。 – jvillian
为单行函数创建关注文件?这感觉就像是扭曲我的应用程序的源代码以弥补语言/库的限制。我仍然希望有人可以建议如何测试ApplicationRecord类本身,但是非常感谢你写出了很好的建议! – bronson