Répondre

0

Il n'y a absolument rien de spécial dans les relations STI que devrait écrire des cas de test à propos de. Comme il s'agit d'une fonctionnalité fournie par framework, les frameworks sont livrés avec un tas de testcases.

Vous avez seulement besoin d'écrire des cas de test pour la fonctionnalité que vous construisez.

+0

s'il y a un code dans les classes d'enfants IST à savoir des méthodes qui est exécutée après l'initialisation de la classe. Je pense qu'il serait sage de tester ce code. – Rohit

+0

Eh bien oui, comme je l'ai dit, si vous l'avez personnalisé, vous devrez exécuter les tests intégrés. En outre, les modules STI intégrés garantissent que l'instance correcte de la classe est chargée, en fonction de 'type', donc si vous modifiez cela, vous pouvez écrire le cas de test le long de ces lignes. Mon point étant, il n'y a rien générique au sujet de STI. Postez du code si vous en avez et nous pouvons le prendre à partir de là. – Swanand

+0

l'une des classes enfant aide à télécharger des fichiers une autre classe enfant est utilisée pour stocker des réponses à choix multiples. Et il y a une colonne "valeur" dans le parent STI, où le nom du fichier téléchargé est stocké et aussi les choix sélectionnés par l'utilisateur sont enregistrés dans cette colonne avec chaque choix ayant son propre enregistrement. J'espère que vous avez une meilleure idée de la situation maintenant. – Rohit

1

test tous les 3 classes comme vous le feriez normalement tester une classe individuelle:

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 
Questions connexes