我有一个扩展的模型,测试原始类和扩展类的最佳方法是什么? 目前,我只是测试数据集模型。有没有办法在Section内包含数据集测试?或者我只是为添加到Section的任何内容编写测试?
提前致谢。
模型
class Dataset < ActiveRecord::Base
validates :name, presence: true
# ...
end
class Section < Dataset
# ...
end
规格
describe Dataset do
it "should have a valid name" do
should validate_presence_of(:name)
end
# ...
end
答案 0 :(得分:3)
我认为最好的办法是为父类提供一组测试,并为子类添加的任何其他行为设置一组单独的测试。在每个类的单独测试中测试共享行为将是多余的并且难以维护。并且在孩子的测试中包括父母测试不一定是必要的 - 一旦经过测试,它就会被测试。
答案 1 :(得分:3)
您可以使用共享示例组:
https://www.relishapp.com/rspec/rspec-core/v/2-0/docs/example-groups/shared-example-group
答案 2 :(得分:1)
首先,这不是扩展类,而是继承类。
如果子类,新方法或覆盖中有任何特殊内容,只需单独测试即可。如果没有什么新内容,测试父类就足够了。