Bonjour,
je viens lancer un SOS. Je d�bute en tests unitaires et je dois bien avouer �tre totalement perdue. J'ai lu tout un tas de tutoriels en fran�ais et en anglais mais je n'arrive pas � bien comprendre. Je veux dire, je comprends les tests que je dois faire, mais je ne comprends pas COMMENT les faire.
L� par exemple je suis bloqu�e sur des tests de If dans une autre boucle If. Je vous mets mon code juste apr�s.
Dans ce code, je dois ente autre tester que si le 1er jour de la semaine est Monday, le calendrier enregistre bien que le 1er jour de la semaine � aller chercher est Monday. Je pense avoir trouv� comment tester si c'est bien Monday. Mais il faudrait aussi que je teste si ce n'est PAS Monday, et l� je ne comprends pas. De plus, si c'est bien Monday, il faudrait que je renvoie mon calendrier. Et l� je ne vois pas du tout comment on fait �a.
Je suis d�sol�e, j'ai bien conscience de s�rement poser des questions b�tes mais je suis vraiment perdue l�. Je me m�lange les pinceaux je le sens bien.
Ah si, autre chose, je ne peux pas tester si mon code va bien car j'ai une erreur "java.lang.NullPointerException" sur la ligne "siteService.getCalendar("ACTIVITY");" et je ne comprends pas d'o� elle vient. J'ai vraiment l'impression de tout avoir bien d�clar� pourtant.
Bref, voici mon code. Merci � quiconque pourra m'aider et m'expliquer. Il faut � tout pris que je comprenne. Ce sera appr�ci� encore bien plus que tous les mercis que je posterai.
Voici tout d'abord le code de ma classe � tester:
Et voici le code de test que j'ai fait par moi-m�me (� noter que mon siteRepository est mock� via @Mock):
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 public Calendar getCalendar(String activity) { Optional<Site> site = siteRepository.findById(activity); if (site.isPresent()) { Calendar cal = GregorianCalendar.getInstance(); if(site.get().getWeekFirstDay() .equals(OurConst.MONDAY)){ cal.setFirstDayOfWeek(java.util.Calendar.MONDAY); } else if (site.get().getWeekFirstDay() .equals(OurConst.SUNDAY)){ cal.setFirstDayOfWeek(java.util.Calendar.SUNDAY); } else { throw new OurParamRuntimeException("Bad value for 'WEEK_FIRST_DAY' for the Site '"+site.get().getActivity()+"'. Expected ['"+OurConst.MONDAY+"' or '"+OurConst.SUNDAY+"'] and get '"+site.get().getWeekFirstDay()+"'"); } if(site.get().getWeekNumberNumberingSystem().equals(OurConst.ISO)){ cal.setMinimalDaysInFirstWeek(4); } else if(site.get().getWeekNumberNumberingSystem().equals(OurConst.DOT)){ cal.setMinimalDaysInFirstWeek(7); } else{ throw new OurParamRuntimeException("Bad value for 'WEEK_NUMBER_NUMBERING_SYSTEM' for the Site '"+site.get().getActivity()+"'. Expected ['"+OurConst.ISO+"' or '"+OurConst.DOT+"'] and get '"+site.get().getWeekNumberNumberingSystem()+"'"); } return cal; } else { throw new IllegalArgumentException("Site must not be null"); } }
I send an SOS!
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
58
59
60
61 @Test public void testCalendar() { Site site = new Site(); Optional<Site> opt = Optional.of(site); Calendar cal = GregorianCalendar.getInstance(); //Test si pas de site Mockito.when(siteRepository.findById(Mockito.anyString())).thenReturn(Optional.empty()); try { siteService.getCalendar("ACTIVITY"); fail(); }catch (IllegalArgumentException e) { assertEquals("Site must not be null", e.getMessage()); } //Test si site Mockito.when(siteRepository.findById(Mockito.anyString())).thenReturn(opt); // assertEquals pour vérifier que l'on appelle bien 'cal' assertEquals(cal, siteService.getCalendar("ACTIVITY")); //Si pas = Monday ??? //test : quand site est présent, le 1er jour de la semaine est Monday site.setWeekFirstDay(UdhConst.MONDAY); siteService.getCalendar("ACTIVITY"); assertEquals("MONDAY", cal.getFirstDayOfWeek()); //test : quand site est présent, le 1er jour de la semaine est Sunday site.setWeekFirstDay(UdhConst.SUNDAY); siteService.getCalendar("ACTIVITY"); assertEquals("SUNDAY", cal.getFirstDayOfWeek()); //test : quand site est présent, le 1er jour n'est ni Monday ni Sunday site.setWeekFirstDay("WEEKFIRSTDAY"); try { siteService.getCalendar("ACTIVITY"); fail(); } catch (UdhParamRuntimeException e) { assertEquals("Bad value for 'WEEK_FIRST_DAY' for the site", e.getMessage()); } //test: quand site est présent, le WeekNumberNumberingSystem est en ISO site.setWeekNumberNumberingSystem(UdhConst.ISO); siteService.getCalendar("ACTIVITY"); assertEquals(4, cal.getMinimalDaysInFirstWeek()); //test: quand site est présent, le WeekNumberNumberingSystem est en DOT site.setWeekNumberNumberingSystem(UdhConst.DOT); siteService.getCalendar("ACTIVITY"); assertEquals(7, cal.getMinimalDaysInFirstWeek()); //test: quand site est présent, le WeekNumberNumberingSystem n'est ni ISO ni DOT site.setWeekNumberNumberingSystem("WEEKNUMBERNUMBERINGSYSTEM"); try { siteService.getCalendar("ACTIVITY"); fail(); } catch (UdhParamRuntimeException e) { assertEquals("Bad value for 'WEEK_NUMBER_NUMBERING_SYSTEM' for the site", e.getMessage()); } }
Merci beaucoup � quiconque tentera de d�bloquer le labyrinthe de mon cerveau sur ce sujet.
Partager