Bonjour,
Je viens vers vous car je n'arrive pas à rédiger ma classe de test.
Je n'arrive pas à comprendre comment faire une classe de test. J'ai du mal à chaque classe de test que je dois faire...
J'ai rédigé un trigger qui va faire un calcul.
Petite explication :
J'utilise l'objet Case. Dans cette objet, j'ai trois champs : date d'analyse (Date_d_analyse__c), Delai_d_analyse_nombre_de_jours_ouvres__c et Date_d_activation__c.
Si la date d'analyse est null, alors mon champs Delai_d_analyse_nombre_de_jours_ouvres__c est null. Sinon, je vais calculer le nombre de jour travaillés entre la date d'activation et la date d'analyse.
Mon trigger :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 trigger Trigger_Jour_Ouvres_Requetes on Case (before insert, before update) { Set<Date> holidaysSet = new Set<Date>(); for(Case Requete : trigger.new){ if(Requete.Date_d_analyse__c == null) { Requete.Delai_d_analyse_nombre_de_jours_ouvres__c = null; } else{ Date dtStartDate=Requete.Date_d_activation__c + 1; Date dtDueDate = Requete.Date_d_analyse__c; Integer JourTravaille= 0; Integer NonTravaille = 0; for(integer i=0; i <= dtStartDate.daysBetween(dtDueDate); i++) { for(Holiday currHoliday : [Select ActivityDate from holiday]) { holidaysSet.add(currHoliday.ActivityDate); } Date dt = dtStartDate+ i; DateTime currDate = DateTime.newInstance(dt.year(), dt.month(), dt.day()); String todayDay = currDate.format('EEEE'); if(todayDay != 'Saturday' && todayDay !='Sunday' && (!holidaysSet.contains(dt))) { JourTravaille = JourTravaille + 1; } else { NonTravaille = NonTravaille +1; } system.debug('Jour travaillé ========> ' + JourTravaille); system.debug('Jour NON travaillé ========> ' + NonTravaille); Requete.Delai_d_analyse_nombre_de_jours_ouvres__c = JourTravaille; } } } }
Ma classe de test :
Elle couvre 45% de mon trigger...
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 @isTest private class Test_Trigger_Jour_Ouvres_Requetes { static testMethod void Verifier_Jour_Ouvres_Requetes() { //INSERER LES DONNEES // Initialisation du RecordType de la Ressource INEO à créer Id RessourceRTId = [select Id from RecordType where SobjectType = 'Ressource_INEO__c' and DeveloperName = 'Support'].Id; //Il faut insérer une Ressource_INEO__c Ressource_INEO__c MaRessource = new Ressource_INEO__c (Name='MaRessource', RO__c=FALSE, RecordTypeId = RessourceRTId); insert MaRessource; // Initialisation RecordType des Sites INEO à créer Id SiteRTId = [select Id from RecordType where SobjectType = 'Site__c' and DeveloperName = 'Client_DOS'].Id; //Il faut insérer un Site__c rattaché à un RecordType Site__c MonSite = new Site__c(name='Site Client', RecordTypeId = SiteRTId); insert MonSite; //Il faut insérer un Compte__c rattaché à un Site Account MonCompte = new Account(Name='MonCompte', Site_INEO__c=MonSite.id); insert MonCompte; //Il faut insérer une activité rattaché à un Site Activite_Site__c Activite = new Activite_Site__c(Site__c= MonSite.id, Responsable__c = MaRessource.Id); insert Activite; //Il faut insérer une Action INEO Action__c Action = new Action__c(Activite_site__c = Activite.Id, Pilote_Action__c= MaRessource.Id, Date_debut__c = system.today(), Date_fin__c = system.today() + 1); insert Action; //Il faut insérer un contact Contact Contact = new Contact(LastName='toto'); insert Contact; Case c = new Case(Date_d_analyse__c = Date.today(), Date_d_activation__c = Date.today() + 1); Case c1 = new Case(Date_d_analyse__c = null); if(c1.Date_d_analyse__c == null) { c1.Delai_d_analyse_nombre_de_jours_ouvres__c = null; } // Début du test test.startTest(); insert c; insert c1; system.assertEquals(Date.newInstance(2015,11,18), c.Date_d_analyse__c); system.assertEquals(null, c1.Date_d_analyse__c); // Fin du test test.stopTest(); } }
Pourriez-vous m'aider à mieux comprendre les classes de test et plus particulièrement celle-ci ?
Je vous remercie par avance.
Bonne journée.
Dedex
Partager