[RUBY] J'obtiens des erreurs: l'utilisateur doit exister dans le test du modèle unitaire

Que faire si vous obtenez des erreurs: l'utilisateur doit exister dans le test du modèle unitaire

ruby '2.6.5' rails '6.0.0'

medicine_spec.rb


before do
    @medicine = FactoryBot.build(:medicine)
    @medicine.image = fixture_file_upload('public/images/money.jpg')
  end
  describe 'Nouvel enregistrement du médicament' do
    context 'Lorsque l'enregistrement d'un nouveau médicament est réussi' do
      it "medicine,symptom,date,Peut être enregistré si l'image existe" do
        expect(@medicine).to be_valid
      end
    end

Ce code de test donne l'erreur suivante.

5.png

J'ai fait une hypothèse. Depuis que j'ai eu des erreurs: l'utilisateur doit exister, j'ai émis l'hypothèse que les informations utilisateur sont liées.

medicine.rb


   class Medicine < ApplicationRecord
     has_one_attached :image
     belongs_to :user
     with_options presence: true do
       validates :medicine
       validates :symptom
       validates :date
     end
   end

user.rb


    has_many :medicines

L'association modèle est assemblée. La chose suivante à laquelle j'ai pensé était l'hypothèse que l'association ne s'était pas formée au moment du test pour saisir la valeur.

medicines.rb


   FactoryBot.define do
     factory :medicine do
        medicine { 'Loxonine' }
        symptom { 'Du froid' }
        date { Time.now.utc }
       user
     end
   end
   

Ajout de ʻassociation: user`. Je vais le tester.

6.png

J'ai réussi le test en toute sécurité!

Je passerai le test sans faute, mais si une erreur survient, je peux vérifier la connexion de l'application, je vais donc continuer à apprendre! 6.png

Recommended Posts

J'obtiens des erreurs: l'utilisateur doit exister dans le test du modèle unitaire
[Rails] Code de test unitaire pour le modèle utilisateur
Je veux obtenir la valeur en Ruby
J'obtiens Mysql2 :: Error :: ConnectionError dans l'environnement de production
Obtenez le nom du scénario de test dans la classe de test JUnit
Ce que je suis tombé sur le test ActiveModel :: Serializer
Je suis resté coincé dans le fichier
Le problème que l'attribut du modèle User devient nul dans ActionMailer
Remarques sur la génération de données factices pour les mots de passe dans le code de test unitaire du modèle Rails
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView