IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Salesforce.com Discussion :

Classe de Test d'Apex


Sujet :

Salesforce.com

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 70
    Points : 10
    Points
    10
    Par défaut Classe de Test d'Apex
    Bonsoir,

    J'ai fait une classe de teste pour ma classe d'Apex. mais j'arrive pas a rentrer dans la condition. Vous avez une idée ?

    Merci.

    Voici le code de ma fonction :



    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Contact c1=new Contact();
    
     public void afficher(){
    
              String contactId= c1.id_contact__c;
    
             Contact[] contact=[Select c.FirstName, c.LastName From Contact c where c.Id= :contactId];
    
            if(contact.size() > 0) {
            c1.txt_nom__c=contact[0].FirstName;
            c1.txt_prenom__c=contact[0].LastName;
    
            }
    
        }

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Citation Envoyé par bestcasaoui Voir le message
    J'ai fait une classe de teste pour ma classe d'Apex. mais j'arrive pas a rentrer dans la condition. Vous avez une idée ?
    Rapidement, je dirais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Contact c1=new Contact();
    insert c1;

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 70
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par v.charlet Voir le message
    Rapidement, je dirais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Contact c1=new Contact();
    insert c1;
    Non ça marche pas, parceque j'ai un where c.Id= :contactId

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Ouvre un journal de debogage et rajouter ça dans ta classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Contact c1=new Contact();
    
    public void afficher(){
    
    	String contactId= c1.id_contact__c;
    
    	Contact[] contact=[Select c.FirstName, c.LastName From Contact c where c.Id= :contactId];
    	System.Debug('>>>>>>>>>>>test' + contact.size());
    	System.Debug('>>>>>>>>>>>testc' + Contact[0]);
    	if(contact.size() > 0) {
    	c1.txt_nom__c=contact[0].FirstName;
    	c1.txt_prenom__c=contact[0].LastName;
    
    	}
    
    }
    Lance le test

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 70
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par max33370 Voir le message
    Ouvre un journal de debogage et rajouter ça dans ta classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Contact c1=new Contact();
    
    public void afficher(){
    
    	String contactId= c1.id_contact__c;
    
    	Contact[] contact=[Select c.FirstName, c.LastName From Contact c where c.Id= :contactId];
    	System.Debug('>>>>>>>>>>>test' + contact.size());
    	System.Debug('>>>>>>>>>>>testc' + Contact[0]);
    	if(contact.size() > 0) {
    	c1.txt_nom__c=contact[0].FirstName;
    	c1.txt_prenom__c=contact[0].LastName;
    
    	}
    
    }
    Lance le test
    Avec System.Debug('>>>>>>>>>>>testc' + Contact[0]) j'ai le status Failed (System.ListException: List index out of bounds: 0)

    et

    contact.size() m'affiche 0

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Pour moi c'est évident vu le code présenté (mais il nous manque surement des morceaux) que le SELECT ne retourne aucune ligne !
    peut etre nous mettre la classe en entier ...

    cette classe doit tester quoi ?
    quelles sont les données en entrées ?

    contactId a quelle valeur ? parce que dans le code pour moi elle vaut Null !

    est ce que tu tente de lire une donnée de ton organization ? et dans ce cas il te manque @isTest(SeeAllData=true)
    https://www.salesforce.com/us/develo...data_using.htm

  7. #7
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut
    est ce que tu tente de lire une donnée de ton organization ? et dans ce cas il te manque @isTest(SeeAllData=true)
    https://www.salesforce.com/us/develo...data_using.htm
    Ce qui est fortement déconseiller d'ailleurs.

    Une méthode de test c'est :

    1) Tu crées ton jeu de donnée
    2) Tu exécutes tes fonctionnalités
    3) Tu exécutes tes tests unitaires (tes assert)

    Tu t'occupes pas du coverage si tu géres bien tes asserts ton coverage devrait être bon.

    4) Tu peaufines pour couvrir à 100%


    Pourquoi c'est déconseillé ?
    Car admettons que tu as 2 sandbox :
    sandbox 1 avec tes données --> Ici le test passe avec le SeeAll
    sandbox 2 sans tes données --> Ici le test ne passera plus ...


    Comme précédemment, ils nous manquent des morceaux. Peux tu nous donner le code fonctionnel et ton début de classe de test s'il te plait.
    ---
    Overcrash

    Je ne lis pas les codes qui ne sont pas indentés.
    Merci de les messages utiles en cliquant en bas à droite du message

    Bloqué par le firewall pour accéder au chat ? Essayez avec l'adresse en direct : http://87.98.168.209/

Discussions similaires

  1. [JUnit] Lancer des tests JUnit depuis une classe de test
    Par naglafar dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 29/07/2008, 15h51
  2. [Checkstyle] [Maven] activation du checkstyle report sur les classes de test
    Par cronoschris dans le forum Qualimétrie
    Réponses: 19
    Dernier message: 08/05/2008, 19h24
  3. Réponses: 1
    Dernier message: 20/12/2007, 11h53
  4. [M2] Javadoc et classes de test
    Par dvicente72 dans le forum Maven
    Réponses: 3
    Dernier message: 15/05/2007, 20h41
  5. [JUnit] Génération automatique des classes de tests
    Par sidi.elmoctar dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/08/2006, 00h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo