如何为STI关联Ruby on Rails编写单元测试

时间:2010-09-23 06:14:14

标签: ruby-on-rails ruby unit-testing single-table-inheritance

在需要为STI关联编写单元测试时,您应该使用哪些步骤。我完全糊涂了。请提供一些建议或一些教程的链接。 提前致谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

您只需为您正在构建的功能编写测试用例。