回答

0

STI关系中绝对没有什么特别的,应该写测试用例。由于这是由框架提供的功能,框架附带了一堆测试用例。

你只需要编写测试用例正在构建中。

+0

如果有一种是在正在类的初始化后执行STI子类,即方法的一些代码。我认为测试这些代码是明智的。 – Rohit 2010-09-23 09:17:08

+0

是的,正如我所说,如果您定制了它,那么您将需要运行内置测试。此外,内置的STI模块将确保类的正确实例被加载,具体取决于'type',所以如果你正在改变它,那么你可以编写测试用例。我的观点是,STI没有什么通用的。发布一些代码,如果你有任何,我们可以从那里拿走它。 – Swanand 2010-09-23 09:55:57

+0

其中一个子类有助于上传文件,另一个子类用于存储多选答案。 STI父母中有一列“价值”,上传文件的名称被存储,用户选择的选项也被保存在该列中,每个选项都有自己的记录。希望你现在对情况有更好的了解。 – Rohit 2010-09-24 05:06:08

1

测试的所有3类,你通常会测试任何个人类:

class Person < ActiveRecord::Base 
    attr_reader :first_name, :last_name 
    def initialize 
    @first_name = "George" 
    @last_name = "Washington" 
    end 

    def formatted_name 
    "#{@first_name} #{@last_name}" 
    end 
end 

class Doctor < Person 
    def formatted_name 
    "Dr. #{@first_name} #{@last_name}" 
    end 
end 

class Guy < Person 
    def formatted_name 
    "Mr. #{@first_name} #{@last_name}" 
    end 
end 

describe Person do 
    describe "#formatted_name" do 
    person = Person.new 
    person.formatted_name.should == "George Washington" 
    end 
end 

describe Doctor do 
    describe "#formatted_name" do 
    doctor = Doctor.new 
    doctor.formatted_name.should == "Dr. George Washington" 
    end 
end 

describe Guy do 
    describe "#formatted_name" do 
    guy = Guy.new 
    guy.formatted_name.should == "Mr. George Washington" 
    end 
end