[{"data":1,"prerenderedAt":4163},["ShallowReactive",2],{"/fr/dette-technique/decouvrir-frameworks-tests-java":3,"search-api":-1},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"id":10,"date":11,"listed":12,"hidden":6,"nocomments":6,"categories":13,"tags":15,"--cover":18,"readingTime":19,"body":24,"_type":4157,"_id":4158,"_source":4159,"_file":4160,"_stem":4161,"_extension":4162},"/fr/dette-technique/decouvrir-frameworks-tests-java","dette-technique",false,"","Découvrir les frameworks de tests en Java, Types, exemples et guide complet","Découvrez pourquoi les frameworks de tests sont indispensables pour les développeurs Java. Explorez les types de tests, des exemples concrets avec...",44,"2024-03-14",true,[14],"tests-automatises-et-software-craftsmanship",[16,17],"Tests automatises","Software craftsmanship","covers/articles/frameworks-de-tests.jpg",{"text":20,"minutes":21,"time":22,"words":23},"9 min read",8.43,505800,1686,{"type":25,"children":26,"toc":4149},"root",[27,40,46,58,70,74,83,88,100,112,117,131,142,147,158,179,198,201,210,215,225,244,251,626,639,649,675,681,1126,1136,1148,1154,1949,1974,1977,1986,1991,2001,2010,2016,2327,2337,2346,2352,2639,2649,2659,2665,3224,3237,3248,3257,3263,3763,3766,3775,3780,3790,3837,3847,3903,3913,3943,3955,3965,3993,4004,4026,4029,4038,4053,4070,4093,4112,4131,4143],{"type":28,"tag":29,"props":30,"children":32},"element","h3",{"id":31},"découvrir-limportance-et-les-différents-types-de-frameworks-de-tests-pour-les-développeurs-de-logiciels",[33],{"type":28,"tag":34,"props":35,"children":36},"strong",{},[37],{"type":38,"value":39},"text","Découvrir l'importance et les différents types de frameworks de tests pour les développeurs de logiciels",{"type":28,"tag":41,"props":42,"children":43},"p",{},[44],{"type":38,"value":45},"En tant que développeur, vous vous êtes probablement déjà retrouvé dans une situation où vous étiez sûr que tout fonctionnait correctement, jusqu'à ce qu'un bug inattendu apparaisse après la livraison. Ce genre de surprise peut être frustrant, surtout quand il aurait pu être évité avec de meilleurs tests. Les tests logiciels ne sont pas seulement une option, ils sont indispensables pour garantir la stabilité de votre application à long terme. Cependant, tester manuellement chaque fonctionnalité devient vite une tâche insurmontable, surtout à mesure que votre projet grandit.",{"type":28,"tag":41,"props":47,"children":48},{},[49,51,56],{"type":38,"value":50},"C'est ici que les ",{"type":28,"tag":34,"props":52,"children":53},{},[54],{"type":38,"value":55},"frameworks de tests",{"type":38,"value":57}," entrent en jeu. Ces outils vous permettent d'automatiser les tests, réduisant ainsi les erreurs humaines, tout en rendant votre processus de développement plus efficace. En tant que développeur Java, vous avez à votre disposition une multitude de frameworks puissants pour différents types de tests : unitaires, d'intégration, ou encore fonctionnels. Mais comment choisir celui qui vous convient le mieux ? Et surtout, comment les utiliser efficacement dans votre projet ?",{"type":28,"tag":41,"props":59,"children":60},{},[61,63,68],{"type":38,"value":62},"Je vais vous expliquer ici ",{"type":28,"tag":34,"props":64,"children":65},{},[66],{"type":38,"value":67},"pourquoi",{"type":38,"value":69}," les frameworks de tests sont si importants, vous présenter les principaux types de tests, et vous montrer des exemples concrets en Java. À la fin, vous aurez une meilleure vision pour choisir le framework le plus adapté à vos besoins.",{"type":28,"tag":71,"props":72,"children":73},"hr",{},[],{"type":28,"tag":29,"props":75,"children":77},{"id":76},"frameworks-de-tests-pourquoi-en-utiliser-un",[78],{"type":28,"tag":34,"props":79,"children":80},{},[81],{"type":38,"value":82},"Frameworks de tests : Pourquoi en utiliser un ?",{"type":28,"tag":41,"props":84,"children":85},{},[86],{"type":38,"value":87},"En tant que développeur, vous passez une grande partie de votre temps à écrire du code, mais sans tests automatisés, vous êtes probablement contraint de tester manuellement chaque nouvelle fonctionnalité ou correction de bug. C'est non seulement inefficace, mais cela devient rapidement un cauchemar à mesure que votre projet se complexifie.",{"type":28,"tag":41,"props":89,"children":90},{},[91,93,98],{"type":38,"value":92},"Voici ",{"type":28,"tag":34,"props":94,"children":95},{},[96],{"type":38,"value":97},"trois raisons principales",{"type":38,"value":99}," pour lesquelles l'utilisation d'un framework de tests est essentielle :",{"type":28,"tag":101,"props":102,"children":104},"h4",{"id":103},"_1-automatisation-des-tests",[105,107],{"type":38,"value":106},"1. ",{"type":28,"tag":34,"props":108,"children":109},{},[110],{"type":38,"value":111},"Automatisation des tests",{"type":28,"tag":41,"props":113,"children":114},{},[115],{"type":38,"value":116},"Les frameworks vous permettent d'automatiser le processus de test. Plutôt que de lancer manuellement votre application, de vérifier les fonctionnalités une par une et de noter les résultats, un framework de tests peut exécuter automatiquement des dizaines, voire des centaines de tests en quelques secondes. Cela vous libère du temps pour vous concentrer sur l'écriture de nouvelles fonctionnalités, tout en assurant que votre code reste stable.",{"type":28,"tag":118,"props":119,"children":120},"blockquote",{},[121],{"type":28,"tag":41,"props":122,"children":123},{},[124,129],{"type":28,"tag":34,"props":125,"children":126},{},[127],{"type":38,"value":128},"TIP",{"type":38,"value":130}," : Intégrez les tests dans votre workflow de développement dès le début. Plus tôt vous automatisez les tests, plus vous réduisez les risques de bugs en production.",{"type":28,"tag":101,"props":132,"children":134},{"id":133},"_2-détection-rapide-des-bugs",[135,137],{"type":38,"value":136},"2. ",{"type":28,"tag":34,"props":138,"children":139},{},[140],{"type":38,"value":141},"Détection rapide des bugs",{"type":28,"tag":41,"props":143,"children":144},{},[145],{"type":38,"value":146},"Les tests automatisés permettent d’attraper rapidement les régressions ou les bugs introduits lors de nouvelles modifications. Chaque fois que vous modifiez votre code, il y a un risque que cela casse quelque chose ailleurs. Grâce aux tests, vous pouvez instantanément savoir si une modification impacte d’autres parties du projet, et cela bien avant que ces bugs n’atteignent la production. Dans mes missions chez des grandes DSI, j’ai observé que l’absence de tests automatisés se traduit concrètement par un allongement du time-to-market de 30 à 50 %, les équipes passant une part croissante de leur capacité à gérer des régressions plutôt qu’à livrer de la valeur.",{"type":28,"tag":101,"props":148,"children":150},{"id":149},"_3-amélioration-de-la-qualité-du-code",[151,153],{"type":38,"value":152},"3. ",{"type":28,"tag":34,"props":154,"children":155},{},[156],{"type":38,"value":157},"Amélioration de la qualité du code",{"type":28,"tag":41,"props":159,"children":160},{},[161,163,168,170,177],{"type":38,"value":162},"Le fait d’écrire des tests pousse à mieux structurer et modulariser votre code. Un code facilement testable est souvent plus propre, plus clair et mieux organisé. Les frameworks de tests favorisent ainsi des pratiques de développement comme le ",{"type":28,"tag":34,"props":164,"children":165},{},[166],{"type":38,"value":167},"TDD (Test Driven Development)",{"type":38,"value":169},", popularisé par Kent Beck dans son ouvrage \"Test-Driven Development by Example\", où vous écrivez d’abord vos tests avant d’implémenter la fonctionnalité. Pour aller plus loin sur la qualité, une ",{"type":28,"tag":171,"props":172,"children":174},"a",{"href":173},"/fr/dette-technique/definition-of-done-qualite",[175],{"type":38,"value":176},"Definition of Done",{"type":38,"value":178}," solide exige des tests automatisés comme critère non-négociable.",{"type":28,"tag":118,"props":180,"children":181},{},[182],{"type":28,"tag":41,"props":183,"children":184},{},[185,189,191,196],{"type":28,"tag":34,"props":186,"children":187},{},[188],{"type":38,"value":128},{"type":38,"value":190}," : Le ",{"type":28,"tag":34,"props":192,"children":193},{},[194],{"type":38,"value":195},"TDD",{"type":38,"value":197}," peut sembler contre-intuitif au début, mais il est très efficace à long terme. Essayez d’écrire un petit test avant d’écrire la fonctionnalité : vous verrez que ça force à réfléchir en profondeur sur le comportement attendu.",{"type":28,"tag":71,"props":199,"children":200},{},[],{"type":28,"tag":29,"props":202,"children":204},{"id":203},"les-différents-types-de-frameworks-de-tests",[205],{"type":28,"tag":34,"props":206,"children":207},{},[208],{"type":38,"value":209},"Les différents types de frameworks de tests",{"type":28,"tag":41,"props":211,"children":212},{},[213],{"type":38,"value":214},"Il existe plusieurs types de tests, chacun ayant un rôle spécifique dans le développement logiciel. En fonction de ce que vous souhaitez tester (une petite portion de code ou tout un système), vous choisirez un type de test particulier. Voici les principaux types de tests utilisés par les développeurs, ainsi que les frameworks correspondants pour chaque type.",{"type":28,"tag":101,"props":216,"children":218},{"id":217},"_1-tests-unitaires",[219,220],{"type":38,"value":106},{"type":28,"tag":34,"props":221,"children":222},{},[223],{"type":38,"value":224},"Tests unitaires",{"type":28,"tag":41,"props":226,"children":227},{},[228,230,235,237,242],{"type":38,"value":229},"Les tests unitaires se concentrent sur de petites portions de votre code, généralement des fonctions ou des méthodes individuelles. L'idée est de s'assurer que chaque unité fonctionne correctement de manière isolée. En Java, ",{"type":28,"tag":34,"props":231,"children":232},{},[233],{"type":38,"value":234},"JUnit",{"type":38,"value":236}," et ",{"type":28,"tag":34,"props":238,"children":239},{},[240],{"type":38,"value":241},"TestNG",{"type":38,"value":243}," sont deux des frameworks les plus populaires pour effectuer des tests unitaires.",{"type":28,"tag":245,"props":246,"children":248},"h5",{"id":247},"exemple-de-test-unitaire-avec-junit",[249],{"type":38,"value":250},"Exemple de test unitaire avec JUnit :",{"type":28,"tag":252,"props":253,"children":257},"pre",{"className":254,"code":255,"language":256,"meta":7,"style":7},"language-java shiki shiki-themes catppuccin-frappe github-dark","import org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.assertEquals;\n\npublic class CalculatriceTest {\n\n    @Test\n    public void testAddition() {\n        Calculatrice calc = new Calculatrice();\n        int resultat = calc.addition(2, 3);\n        assertEquals(5, resultat, \"L'addition de 2 et 3 devrait être 5\");\n    }\n}\n","java",[258],{"type":28,"tag":259,"props":260,"children":261},"code",{"__ignoreMap":7},[262,323,386,395,420,428,444,473,509,567,608,617],{"type":28,"tag":263,"props":264,"children":267},"span",{"class":265,"line":266},"line",1,[268,274,280,286,291,295,300,304,309,313,318],{"type":28,"tag":263,"props":269,"children":271},{"style":270},"--shiki-default:#CA9EE6;--shiki-dark:#F97583",[272],{"type":38,"value":273},"import",{"type":28,"tag":263,"props":275,"children":277},{"style":276},"--shiki-default:#C6D0F5;--shiki-dark:#E1E4E8",[278],{"type":38,"value":279}," org",{"type":28,"tag":263,"props":281,"children":283},{"style":282},"--shiki-default:#949CBB;--shiki-dark:#E1E4E8",[284],{"type":38,"value":285},".",{"type":28,"tag":263,"props":287,"children":288},{"style":276},[289],{"type":38,"value":290},"junit",{"type":28,"tag":263,"props":292,"children":293},{"style":282},[294],{"type":38,"value":285},{"type":28,"tag":263,"props":296,"children":297},{"style":276},[298],{"type":38,"value":299},"jupiter",{"type":28,"tag":263,"props":301,"children":302},{"style":282},[303],{"type":38,"value":285},{"type":28,"tag":263,"props":305,"children":306},{"style":276},[307],{"type":38,"value":308},"api",{"type":28,"tag":263,"props":310,"children":311},{"style":282},[312],{"type":38,"value":285},{"type":28,"tag":263,"props":314,"children":315},{"style":276},[316],{"type":38,"value":317},"Test",{"type":28,"tag":263,"props":319,"children":320},{"style":282},[321],{"type":38,"value":322},";\n",{"type":28,"tag":263,"props":324,"children":326},{"class":265,"line":325},2,[327,331,336,340,344,348,352,356,360,364,368,373,377,382],{"type":28,"tag":263,"props":328,"children":329},{"style":270},[330],{"type":38,"value":273},{"type":28,"tag":263,"props":332,"children":333},{"style":270},[334],{"type":38,"value":335}," static",{"type":28,"tag":263,"props":337,"children":338},{"style":276},[339],{"type":38,"value":279},{"type":28,"tag":263,"props":341,"children":342},{"style":282},[343],{"type":38,"value":285},{"type":28,"tag":263,"props":345,"children":346},{"style":276},[347],{"type":38,"value":290},{"type":28,"tag":263,"props":349,"children":350},{"style":282},[351],{"type":38,"value":285},{"type":28,"tag":263,"props":353,"children":354},{"style":276},[355],{"type":38,"value":299},{"type":28,"tag":263,"props":357,"children":358},{"style":282},[359],{"type":38,"value":285},{"type":28,"tag":263,"props":361,"children":362},{"style":276},[363],{"type":38,"value":308},{"type":28,"tag":263,"props":365,"children":366},{"style":282},[367],{"type":38,"value":285},{"type":28,"tag":263,"props":369,"children":370},{"style":276},[371],{"type":38,"value":372},"Assertions",{"type":28,"tag":263,"props":374,"children":375},{"style":282},[376],{"type":38,"value":285},{"type":28,"tag":263,"props":378,"children":379},{"style":276},[380],{"type":38,"value":381},"assertEquals",{"type":28,"tag":263,"props":383,"children":384},{"style":282},[385],{"type":38,"value":322},{"type":28,"tag":263,"props":387,"children":389},{"class":265,"line":388},3,[390],{"type":28,"tag":263,"props":391,"children":392},{"emptyLinePlaceholder":12},[393],{"type":38,"value":394},"\n",{"type":28,"tag":263,"props":396,"children":398},{"class":265,"line":397},4,[399,404,409,415],{"type":28,"tag":263,"props":400,"children":401},{"style":270},[402],{"type":38,"value":403},"public",{"type":28,"tag":263,"props":405,"children":406},{"style":270},[407],{"type":38,"value":408}," class",{"type":28,"tag":263,"props":410,"children":412},{"style":411},"--shiki-default:#E5C890;--shiki-default-font-style:italic;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit",[413],{"type":38,"value":414}," CalculatriceTest",{"type":28,"tag":263,"props":416,"children":417},{"style":282},[418],{"type":38,"value":419}," {\n",{"type":28,"tag":263,"props":421,"children":423},{"class":265,"line":422},5,[424],{"type":28,"tag":263,"props":425,"children":426},{"emptyLinePlaceholder":12},[427],{"type":38,"value":394},{"type":28,"tag":263,"props":429,"children":431},{"class":265,"line":430},6,[432,438],{"type":28,"tag":263,"props":433,"children":435},{"style":434},"--shiki-default:#EF9F76;--shiki-dark:#E1E4E8",[436],{"type":38,"value":437},"    @",{"type":28,"tag":263,"props":439,"children":441},{"style":440},"--shiki-default:#EF9F76;--shiki-dark:#F97583",[442],{"type":38,"value":443},"Test\n",{"type":28,"tag":263,"props":445,"children":447},{"class":265,"line":446},7,[448,453,458,464,469],{"type":28,"tag":263,"props":449,"children":450},{"style":270},[451],{"type":38,"value":452},"    public",{"type":28,"tag":263,"props":454,"children":455},{"style":270},[456],{"type":38,"value":457}," void",{"type":28,"tag":263,"props":459,"children":461},{"style":460},"--shiki-default:#8CAAEE;--shiki-default-font-style:italic;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit",[462],{"type":38,"value":463}," testAddition",{"type":28,"tag":263,"props":465,"children":466},{"style":282},[467],{"type":38,"value":468},"()",{"type":28,"tag":263,"props":470,"children":471},{"style":282},[472],{"type":38,"value":419},{"type":28,"tag":263,"props":474,"children":476},{"class":265,"line":475},8,[477,483,488,494,499,504],{"type":28,"tag":263,"props":478,"children":480},{"style":479},"--shiki-default:#CA9EE6;--shiki-dark:#E1E4E8",[481],{"type":38,"value":482},"        Calculatrice",{"type":28,"tag":263,"props":484,"children":485},{"style":276},[486],{"type":38,"value":487}," calc ",{"type":28,"tag":263,"props":489,"children":491},{"style":490},"--shiki-default:#81C8BE;--shiki-dark:#F97583",[492],{"type":38,"value":493},"=",{"type":28,"tag":263,"props":495,"children":496},{"style":270},[497],{"type":38,"value":498}," new",{"type":28,"tag":263,"props":500,"children":501},{"style":460},[502],{"type":38,"value":503}," Calculatrice",{"type":28,"tag":263,"props":505,"children":506},{"style":282},[507],{"type":38,"value":508},"();\n",{"type":28,"tag":263,"props":510,"children":512},{"class":265,"line":511},9,[513,518,523,527,532,536,541,546,552,557,562],{"type":28,"tag":263,"props":514,"children":515},{"style":270},[516],{"type":38,"value":517},"        int",{"type":28,"tag":263,"props":519,"children":520},{"style":276},[521],{"type":38,"value":522}," resultat ",{"type":28,"tag":263,"props":524,"children":525},{"style":490},[526],{"type":38,"value":493},{"type":28,"tag":263,"props":528,"children":529},{"style":276},[530],{"type":38,"value":531}," calc",{"type":28,"tag":263,"props":533,"children":534},{"style":282},[535],{"type":38,"value":285},{"type":28,"tag":263,"props":537,"children":538},{"style":460},[539],{"type":38,"value":540},"addition",{"type":28,"tag":263,"props":542,"children":543},{"style":282},[544],{"type":38,"value":545},"(",{"type":28,"tag":263,"props":547,"children":549},{"style":548},"--shiki-default:#EF9F76;--shiki-dark:#79B8FF",[550],{"type":38,"value":551},"2",{"type":28,"tag":263,"props":553,"children":554},{"style":282},[555],{"type":38,"value":556},",",{"type":28,"tag":263,"props":558,"children":559},{"style":548},[560],{"type":38,"value":561}," 3",{"type":28,"tag":263,"props":563,"children":564},{"style":282},[565],{"type":38,"value":566},");\n",{"type":28,"tag":263,"props":568,"children":570},{"class":265,"line":569},10,[571,576,580,585,589,594,598,604],{"type":28,"tag":263,"props":572,"children":573},{"style":460},[574],{"type":38,"value":575},"        assertEquals",{"type":28,"tag":263,"props":577,"children":578},{"style":282},[579],{"type":38,"value":545},{"type":28,"tag":263,"props":581,"children":582},{"style":548},[583],{"type":38,"value":584},"5",{"type":28,"tag":263,"props":586,"children":587},{"style":282},[588],{"type":38,"value":556},{"type":28,"tag":263,"props":590,"children":591},{"style":276},[592],{"type":38,"value":593}," resultat",{"type":28,"tag":263,"props":595,"children":596},{"style":282},[597],{"type":38,"value":556},{"type":28,"tag":263,"props":599,"children":601},{"style":600},"--shiki-default:#A6D189;--shiki-dark:#9ECBFF",[602],{"type":38,"value":603}," \"L'addition de 2 et 3 devrait être 5\"",{"type":28,"tag":263,"props":605,"children":606},{"style":282},[607],{"type":38,"value":566},{"type":28,"tag":263,"props":609,"children":611},{"class":265,"line":610},11,[612],{"type":28,"tag":263,"props":613,"children":614},{"style":282},[615],{"type":38,"value":616},"    }\n",{"type":28,"tag":263,"props":618,"children":620},{"class":265,"line":619},12,[621],{"type":28,"tag":263,"props":622,"children":623},{"style":282},[624],{"type":38,"value":625},"}\n",{"type":28,"tag":118,"props":627,"children":628},{},[629],{"type":28,"tag":41,"props":630,"children":631},{},[632,637],{"type":28,"tag":34,"props":633,"children":634},{},[635],{"type":38,"value":636},"ALERT",{"type":38,"value":638}," : Il est crucial de tester toutes les branches de votre code, même celles qui semblent rarement utilisées. Par exemple, n'oubliez pas de tester les exceptions et les cas limites.",{"type":28,"tag":101,"props":640,"children":642},{"id":641},"_2-tests-dintégration",[643,644],{"type":38,"value":136},{"type":28,"tag":34,"props":645,"children":646},{},[647],{"type":38,"value":648},"Tests d'intégration",{"type":28,"tag":41,"props":650,"children":651},{},[652,654,660,662,667,669,674],{"type":38,"value":653},"Les ",{"type":28,"tag":171,"props":655,"children":657},{"href":656},"/fr/dette-technique/tests-integration-legacy-pieges",[658],{"type":38,"value":659},"tests d'intégration",{"type":38,"value":661}," vérifient que différentes parties de votre application fonctionnent bien ensemble. Contrairement aux tests unitaires, qui se concentrent sur des morceaux isolés, les tests d'intégration s'assurent que les interactions entre modules sont correctes. Pour ce type de tests, vous pouvez utiliser des outils comme ",{"type":28,"tag":34,"props":663,"children":664},{},[665],{"type":38,"value":666},"Spring Test",{"type":38,"value":668}," ou ",{"type":28,"tag":34,"props":670,"children":671},{},[672],{"type":38,"value":673},"Arquillian",{"type":38,"value":285},{"type":28,"tag":245,"props":676,"children":678},{"id":677},"exemple-de-test-dintégration-avec-spring",[679],{"type":38,"value":680},"Exemple de test d'intégration avec Spring :",{"type":28,"tag":252,"props":682,"children":684},{"className":254,"code":683,"language":256,"meta":7,"style":7},"import org.junit.jupiter.api.Test;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.boot.test.context.SpringBootTest;\n\n@SpringBootTest\npublic class ApplicationIntegrationTest {\n\n    @Autowired\n    private UserService userService;\n\n    @Test\n    public void testCreerUtilisateur() {\n        User user = new User(\"John\", \"Doe\");\n        User savedUser = userService.creerUtilisateur(user);\n        assertNotNull(savedUser.getId(), \"L'utilisateur devrait avoir un ID après l'enregistrement\");\n    }\n}\n",[685],{"type":28,"tag":259,"props":686,"children":687},{"__ignoreMap":7},[688,735,795,854,861,874,894,901,913,935,942,953,977,1026,1069,1110,1118],{"type":28,"tag":263,"props":689,"children":690},{"class":265,"line":266},[691,695,699,703,707,711,715,719,723,727,731],{"type":28,"tag":263,"props":692,"children":693},{"style":270},[694],{"type":38,"value":273},{"type":28,"tag":263,"props":696,"children":697},{"style":276},[698],{"type":38,"value":279},{"type":28,"tag":263,"props":700,"children":701},{"style":282},[702],{"type":38,"value":285},{"type":28,"tag":263,"props":704,"children":705},{"style":276},[706],{"type":38,"value":290},{"type":28,"tag":263,"props":708,"children":709},{"style":282},[710],{"type":38,"value":285},{"type":28,"tag":263,"props":712,"children":713},{"style":276},[714],{"type":38,"value":299},{"type":28,"tag":263,"props":716,"children":717},{"style":282},[718],{"type":38,"value":285},{"type":28,"tag":263,"props":720,"children":721},{"style":276},[722],{"type":38,"value":308},{"type":28,"tag":263,"props":724,"children":725},{"style":282},[726],{"type":38,"value":285},{"type":28,"tag":263,"props":728,"children":729},{"style":276},[730],{"type":38,"value":317},{"type":28,"tag":263,"props":732,"children":733},{"style":282},[734],{"type":38,"value":322},{"type":28,"tag":263,"props":736,"children":737},{"class":265,"line":325},[738,742,746,750,755,759,764,768,773,777,782,786,791],{"type":28,"tag":263,"props":739,"children":740},{"style":270},[741],{"type":38,"value":273},{"type":28,"tag":263,"props":743,"children":744},{"style":276},[745],{"type":38,"value":279},{"type":28,"tag":263,"props":747,"children":748},{"style":282},[749],{"type":38,"value":285},{"type":28,"tag":263,"props":751,"children":752},{"style":276},[753],{"type":38,"value":754},"springframework",{"type":28,"tag":263,"props":756,"children":757},{"style":282},[758],{"type":38,"value":285},{"type":28,"tag":263,"props":760,"children":761},{"style":276},[762],{"type":38,"value":763},"beans",{"type":28,"tag":263,"props":765,"children":766},{"style":282},[767],{"type":38,"value":285},{"type":28,"tag":263,"props":769,"children":770},{"style":276},[771],{"type":38,"value":772},"factory",{"type":28,"tag":263,"props":774,"children":775},{"style":282},[776],{"type":38,"value":285},{"type":28,"tag":263,"props":778,"children":779},{"style":276},[780],{"type":38,"value":781},"annotation",{"type":28,"tag":263,"props":783,"children":784},{"style":282},[785],{"type":38,"value":285},{"type":28,"tag":263,"props":787,"children":788},{"style":276},[789],{"type":38,"value":790},"Autowired",{"type":28,"tag":263,"props":792,"children":793},{"style":282},[794],{"type":38,"value":322},{"type":28,"tag":263,"props":796,"children":797},{"class":265,"line":388},[798,802,806,810,814,818,823,827,832,836,841,845,850],{"type":28,"tag":263,"props":799,"children":800},{"style":270},[801],{"type":38,"value":273},{"type":28,"tag":263,"props":803,"children":804},{"style":276},[805],{"type":38,"value":279},{"type":28,"tag":263,"props":807,"children":808},{"style":282},[809],{"type":38,"value":285},{"type":28,"tag":263,"props":811,"children":812},{"style":276},[813],{"type":38,"value":754},{"type":28,"tag":263,"props":815,"children":816},{"style":282},[817],{"type":38,"value":285},{"type":28,"tag":263,"props":819,"children":820},{"style":276},[821],{"type":38,"value":822},"boot",{"type":28,"tag":263,"props":824,"children":825},{"style":282},[826],{"type":38,"value":285},{"type":28,"tag":263,"props":828,"children":829},{"style":276},[830],{"type":38,"value":831},"test",{"type":28,"tag":263,"props":833,"children":834},{"style":282},[835],{"type":38,"value":285},{"type":28,"tag":263,"props":837,"children":838},{"style":276},[839],{"type":38,"value":840},"context",{"type":28,"tag":263,"props":842,"children":843},{"style":282},[844],{"type":38,"value":285},{"type":28,"tag":263,"props":846,"children":847},{"style":276},[848],{"type":38,"value":849},"SpringBootTest",{"type":28,"tag":263,"props":851,"children":852},{"style":282},[853],{"type":38,"value":322},{"type":28,"tag":263,"props":855,"children":856},{"class":265,"line":397},[857],{"type":28,"tag":263,"props":858,"children":859},{"emptyLinePlaceholder":12},[860],{"type":38,"value":394},{"type":28,"tag":263,"props":862,"children":863},{"class":265,"line":422},[864,869],{"type":28,"tag":263,"props":865,"children":866},{"style":434},[867],{"type":38,"value":868},"@",{"type":28,"tag":263,"props":870,"children":871},{"style":440},[872],{"type":38,"value":873},"SpringBootTest\n",{"type":28,"tag":263,"props":875,"children":876},{"class":265,"line":430},[877,881,885,890],{"type":28,"tag":263,"props":878,"children":879},{"style":270},[880],{"type":38,"value":403},{"type":28,"tag":263,"props":882,"children":883},{"style":270},[884],{"type":38,"value":408},{"type":28,"tag":263,"props":886,"children":887},{"style":411},[888],{"type":38,"value":889}," ApplicationIntegrationTest",{"type":28,"tag":263,"props":891,"children":892},{"style":282},[893],{"type":38,"value":419},{"type":28,"tag":263,"props":895,"children":896},{"class":265,"line":446},[897],{"type":28,"tag":263,"props":898,"children":899},{"emptyLinePlaceholder":12},[900],{"type":38,"value":394},{"type":28,"tag":263,"props":902,"children":903},{"class":265,"line":475},[904,908],{"type":28,"tag":263,"props":905,"children":906},{"style":434},[907],{"type":38,"value":437},{"type":28,"tag":263,"props":909,"children":910},{"style":440},[911],{"type":38,"value":912},"Autowired\n",{"type":28,"tag":263,"props":914,"children":915},{"class":265,"line":511},[916,921,926,931],{"type":28,"tag":263,"props":917,"children":918},{"style":270},[919],{"type":38,"value":920},"    private",{"type":28,"tag":263,"props":922,"children":923},{"style":479},[924],{"type":38,"value":925}," UserService",{"type":28,"tag":263,"props":927,"children":928},{"style":276},[929],{"type":38,"value":930}," userService",{"type":28,"tag":263,"props":932,"children":933},{"style":282},[934],{"type":38,"value":322},{"type":28,"tag":263,"props":936,"children":937},{"class":265,"line":569},[938],{"type":28,"tag":263,"props":939,"children":940},{"emptyLinePlaceholder":12},[941],{"type":38,"value":394},{"type":28,"tag":263,"props":943,"children":944},{"class":265,"line":610},[945,949],{"type":28,"tag":263,"props":946,"children":947},{"style":434},[948],{"type":38,"value":437},{"type":28,"tag":263,"props":950,"children":951},{"style":440},[952],{"type":38,"value":443},{"type":28,"tag":263,"props":954,"children":955},{"class":265,"line":619},[956,960,964,969,973],{"type":28,"tag":263,"props":957,"children":958},{"style":270},[959],{"type":38,"value":452},{"type":28,"tag":263,"props":961,"children":962},{"style":270},[963],{"type":38,"value":457},{"type":28,"tag":263,"props":965,"children":966},{"style":460},[967],{"type":38,"value":968}," testCreerUtilisateur",{"type":28,"tag":263,"props":970,"children":971},{"style":282},[972],{"type":38,"value":468},{"type":28,"tag":263,"props":974,"children":975},{"style":282},[976],{"type":38,"value":419},{"type":28,"tag":263,"props":978,"children":980},{"class":265,"line":979},13,[981,986,991,995,999,1004,1008,1013,1017,1022],{"type":28,"tag":263,"props":982,"children":983},{"style":479},[984],{"type":38,"value":985},"        User",{"type":28,"tag":263,"props":987,"children":988},{"style":276},[989],{"type":38,"value":990}," user ",{"type":28,"tag":263,"props":992,"children":993},{"style":490},[994],{"type":38,"value":493},{"type":28,"tag":263,"props":996,"children":997},{"style":270},[998],{"type":38,"value":498},{"type":28,"tag":263,"props":1000,"children":1001},{"style":460},[1002],{"type":38,"value":1003}," User",{"type":28,"tag":263,"props":1005,"children":1006},{"style":282},[1007],{"type":38,"value":545},{"type":28,"tag":263,"props":1009,"children":1010},{"style":600},[1011],{"type":38,"value":1012},"\"John\"",{"type":28,"tag":263,"props":1014,"children":1015},{"style":282},[1016],{"type":38,"value":556},{"type":28,"tag":263,"props":1018,"children":1019},{"style":600},[1020],{"type":38,"value":1021}," \"Doe\"",{"type":28,"tag":263,"props":1023,"children":1024},{"style":282},[1025],{"type":38,"value":566},{"type":28,"tag":263,"props":1027,"children":1029},{"class":265,"line":1028},14,[1030,1034,1039,1043,1047,1051,1056,1060,1065],{"type":28,"tag":263,"props":1031,"children":1032},{"style":479},[1033],{"type":38,"value":985},{"type":28,"tag":263,"props":1035,"children":1036},{"style":276},[1037],{"type":38,"value":1038}," savedUser ",{"type":28,"tag":263,"props":1040,"children":1041},{"style":490},[1042],{"type":38,"value":493},{"type":28,"tag":263,"props":1044,"children":1045},{"style":276},[1046],{"type":38,"value":930},{"type":28,"tag":263,"props":1048,"children":1049},{"style":282},[1050],{"type":38,"value":285},{"type":28,"tag":263,"props":1052,"children":1053},{"style":460},[1054],{"type":38,"value":1055},"creerUtilisateur",{"type":28,"tag":263,"props":1057,"children":1058},{"style":282},[1059],{"type":38,"value":545},{"type":28,"tag":263,"props":1061,"children":1062},{"style":276},[1063],{"type":38,"value":1064},"user",{"type":28,"tag":263,"props":1066,"children":1067},{"style":282},[1068],{"type":38,"value":566},{"type":28,"tag":263,"props":1070,"children":1072},{"class":265,"line":1071},15,[1073,1078,1082,1087,1091,1096,1101,1106],{"type":28,"tag":263,"props":1074,"children":1075},{"style":460},[1076],{"type":38,"value":1077},"        assertNotNull",{"type":28,"tag":263,"props":1079,"children":1080},{"style":282},[1081],{"type":38,"value":545},{"type":28,"tag":263,"props":1083,"children":1084},{"style":276},[1085],{"type":38,"value":1086},"savedUser",{"type":28,"tag":263,"props":1088,"children":1089},{"style":282},[1090],{"type":38,"value":285},{"type":28,"tag":263,"props":1092,"children":1093},{"style":460},[1094],{"type":38,"value":1095},"getId",{"type":28,"tag":263,"props":1097,"children":1098},{"style":282},[1099],{"type":38,"value":1100},"(),",{"type":28,"tag":263,"props":1102,"children":1103},{"style":600},[1104],{"type":38,"value":1105}," \"L'utilisateur devrait avoir un ID après l'enregistrement\"",{"type":28,"tag":263,"props":1107,"children":1108},{"style":282},[1109],{"type":38,"value":566},{"type":28,"tag":263,"props":1111,"children":1113},{"class":265,"line":1112},16,[1114],{"type":28,"tag":263,"props":1115,"children":1116},{"style":282},[1117],{"type":38,"value":616},{"type":28,"tag":263,"props":1119,"children":1121},{"class":265,"line":1120},17,[1122],{"type":28,"tag":263,"props":1123,"children":1124},{"style":282},[1125],{"type":38,"value":625},{"type":28,"tag":101,"props":1127,"children":1129},{"id":1128},"_3-tests-fonctionnels-ou-end-to-end",[1130,1131],{"type":38,"value":152},{"type":28,"tag":34,"props":1132,"children":1133},{},[1134],{"type":38,"value":1135},"Tests fonctionnels (ou end-to-end)",{"type":28,"tag":41,"props":1137,"children":1138},{},[1139,1141,1146],{"type":38,"value":1140},"Les tests fonctionnels, ou tests end-to-end, vérifient l'ensemble du système du point de vue de l'utilisateur. Ils simulent des scénarios d'utilisation complets pour s'assurer que l'application fonctionne comme prévu du début à la fin. ",{"type":28,"tag":34,"props":1142,"children":1143},{},[1144],{"type":38,"value":1145},"Selenium",{"type":38,"value":1147}," est souvent utilisé pour automatiser les tests fonctionnels des applications web.",{"type":28,"tag":245,"props":1149,"children":1151},{"id":1150},"exemple-de-test-fonctionnel-avec-selenium",[1152],{"type":38,"value":1153},"Exemple de test fonctionnel avec Selenium :",{"type":28,"tag":252,"props":1155,"children":1157},{"className":254,"code":1156,"language":256,"meta":7,"style":7},"import org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.chrome.ChromeDriver;\nimport org.openqa.selenium.By;\n\npublic class LoginTest {\n\n    public static void main(String[] args) {\n        // Configurer le WebDriver pour Chrome\n        System.setProperty(\"webdriver.chrome.driver\", \"path_to_chromedriver\");\n        WebDriver driver = new ChromeDriver();\n\n        // Ouvrir la page de login\n        driver.get(\"http://monapplication.com/login\");\n\n        // Entrer les informations d'identification et se connecter\n        driver.findElement(By.id(\"username\")).sendKeys(\"monNomUtilisateur\");\n        driver.findElement(By.id(\"password\")).sendKeys(\"monMotDePasse\");\n        driver.findElement(By.id(\"loginButton\")).click();\n\n        // Vérifier que la connexion a réussi\n        String pageTitre = driver.getTitle();\n        if(pageTitre.equals(\"Tableau de bord\")) {\n            System.out.println(\"Connexion réussie !\");\n        } else {\n            System.out.println(\"Échec de la connexion.\");\n        }\n\n        // Fermer le navigateur\n        driver.quit();\n    }\n}\n",[1158],{"type":28,"tag":259,"props":1159,"children":1160},{"__ignoreMap":7},[1161,1203,1252,1292,1299,1319,1326,1375,1384,1423,1453,1460,1468,1498,1505,1513,1578,1639,1693,1701,1710,1746,1791,1831,1849,1886,1895,1903,1912,1933,1941],{"type":28,"tag":263,"props":1162,"children":1163},{"class":265,"line":266},[1164,1168,1172,1176,1181,1185,1190,1194,1199],{"type":28,"tag":263,"props":1165,"children":1166},{"style":270},[1167],{"type":38,"value":273},{"type":28,"tag":263,"props":1169,"children":1170},{"style":276},[1171],{"type":38,"value":279},{"type":28,"tag":263,"props":1173,"children":1174},{"style":282},[1175],{"type":38,"value":285},{"type":28,"tag":263,"props":1177,"children":1178},{"style":276},[1179],{"type":38,"value":1180},"openqa",{"type":28,"tag":263,"props":1182,"children":1183},{"style":282},[1184],{"type":38,"value":285},{"type":28,"tag":263,"props":1186,"children":1187},{"style":276},[1188],{"type":38,"value":1189},"selenium",{"type":28,"tag":263,"props":1191,"children":1192},{"style":282},[1193],{"type":38,"value":285},{"type":28,"tag":263,"props":1195,"children":1196},{"style":276},[1197],{"type":38,"value":1198},"WebDriver",{"type":28,"tag":263,"props":1200,"children":1201},{"style":282},[1202],{"type":38,"value":322},{"type":28,"tag":263,"props":1204,"children":1205},{"class":265,"line":325},[1206,1210,1214,1218,1222,1226,1230,1234,1239,1243,1248],{"type":28,"tag":263,"props":1207,"children":1208},{"style":270},[1209],{"type":38,"value":273},{"type":28,"tag":263,"props":1211,"children":1212},{"style":276},[1213],{"type":38,"value":279},{"type":28,"tag":263,"props":1215,"children":1216},{"style":282},[1217],{"type":38,"value":285},{"type":28,"tag":263,"props":1219,"children":1220},{"style":276},[1221],{"type":38,"value":1180},{"type":28,"tag":263,"props":1223,"children":1224},{"style":282},[1225],{"type":38,"value":285},{"type":28,"tag":263,"props":1227,"children":1228},{"style":276},[1229],{"type":38,"value":1189},{"type":28,"tag":263,"props":1231,"children":1232},{"style":282},[1233],{"type":38,"value":285},{"type":28,"tag":263,"props":1235,"children":1236},{"style":276},[1237],{"type":38,"value":1238},"chrome",{"type":28,"tag":263,"props":1240,"children":1241},{"style":282},[1242],{"type":38,"value":285},{"type":28,"tag":263,"props":1244,"children":1245},{"style":276},[1246],{"type":38,"value":1247},"ChromeDriver",{"type":28,"tag":263,"props":1249,"children":1250},{"style":282},[1251],{"type":38,"value":322},{"type":28,"tag":263,"props":1253,"children":1254},{"class":265,"line":388},[1255,1259,1263,1267,1271,1275,1279,1283,1288],{"type":28,"tag":263,"props":1256,"children":1257},{"style":270},[1258],{"type":38,"value":273},{"type":28,"tag":263,"props":1260,"children":1261},{"style":276},[1262],{"type":38,"value":279},{"type":28,"tag":263,"props":1264,"children":1265},{"style":282},[1266],{"type":38,"value":285},{"type":28,"tag":263,"props":1268,"children":1269},{"style":276},[1270],{"type":38,"value":1180},{"type":28,"tag":263,"props":1272,"children":1273},{"style":282},[1274],{"type":38,"value":285},{"type":28,"tag":263,"props":1276,"children":1277},{"style":276},[1278],{"type":38,"value":1189},{"type":28,"tag":263,"props":1280,"children":1281},{"style":282},[1282],{"type":38,"value":285},{"type":28,"tag":263,"props":1284,"children":1285},{"style":276},[1286],{"type":38,"value":1287},"By",{"type":28,"tag":263,"props":1289,"children":1290},{"style":282},[1291],{"type":38,"value":322},{"type":28,"tag":263,"props":1293,"children":1294},{"class":265,"line":397},[1295],{"type":28,"tag":263,"props":1296,"children":1297},{"emptyLinePlaceholder":12},[1298],{"type":38,"value":394},{"type":28,"tag":263,"props":1300,"children":1301},{"class":265,"line":422},[1302,1306,1310,1315],{"type":28,"tag":263,"props":1303,"children":1304},{"style":270},[1305],{"type":38,"value":403},{"type":28,"tag":263,"props":1307,"children":1308},{"style":270},[1309],{"type":38,"value":408},{"type":28,"tag":263,"props":1311,"children":1312},{"style":411},[1313],{"type":38,"value":1314}," LoginTest",{"type":28,"tag":263,"props":1316,"children":1317},{"style":282},[1318],{"type":38,"value":419},{"type":28,"tag":263,"props":1320,"children":1321},{"class":265,"line":430},[1322],{"type":28,"tag":263,"props":1323,"children":1324},{"emptyLinePlaceholder":12},[1325],{"type":38,"value":394},{"type":28,"tag":263,"props":1327,"children":1328},{"class":265,"line":446},[1329,1333,1337,1341,1346,1350,1355,1360,1366,1371],{"type":28,"tag":263,"props":1330,"children":1331},{"style":270},[1332],{"type":38,"value":452},{"type":28,"tag":263,"props":1334,"children":1335},{"style":270},[1336],{"type":38,"value":335},{"type":28,"tag":263,"props":1338,"children":1339},{"style":270},[1340],{"type":38,"value":457},{"type":28,"tag":263,"props":1342,"children":1343},{"style":460},[1344],{"type":38,"value":1345}," main",{"type":28,"tag":263,"props":1347,"children":1348},{"style":282},[1349],{"type":38,"value":545},{"type":28,"tag":263,"props":1351,"children":1352},{"style":270},[1353],{"type":38,"value":1354},"String",{"type":28,"tag":263,"props":1356,"children":1357},{"style":282},[1358],{"type":38,"value":1359},"[]",{"type":28,"tag":263,"props":1361,"children":1363},{"style":1362},"--shiki-default:#EA999C;--shiki-default-font-style:italic;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit",[1364],{"type":38,"value":1365}," args",{"type":28,"tag":263,"props":1367,"children":1368},{"style":282},[1369],{"type":38,"value":1370},")",{"type":28,"tag":263,"props":1372,"children":1373},{"style":282},[1374],{"type":38,"value":419},{"type":28,"tag":263,"props":1376,"children":1377},{"class":265,"line":475},[1378],{"type":28,"tag":263,"props":1379,"children":1381},{"style":1380},"--shiki-default:#737994;--shiki-default-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit",[1382],{"type":38,"value":1383},"        // Configurer le WebDriver pour Chrome\n",{"type":28,"tag":263,"props":1385,"children":1386},{"class":265,"line":511},[1387,1392,1396,1401,1405,1410,1414,1419],{"type":28,"tag":263,"props":1388,"children":1389},{"style":276},[1390],{"type":38,"value":1391},"        System",{"type":28,"tag":263,"props":1393,"children":1394},{"style":282},[1395],{"type":38,"value":285},{"type":28,"tag":263,"props":1397,"children":1398},{"style":460},[1399],{"type":38,"value":1400},"setProperty",{"type":28,"tag":263,"props":1402,"children":1403},{"style":282},[1404],{"type":38,"value":545},{"type":28,"tag":263,"props":1406,"children":1407},{"style":600},[1408],{"type":38,"value":1409},"\"webdriver.chrome.driver\"",{"type":28,"tag":263,"props":1411,"children":1412},{"style":282},[1413],{"type":38,"value":556},{"type":28,"tag":263,"props":1415,"children":1416},{"style":600},[1417],{"type":38,"value":1418}," \"path_to_chromedriver\"",{"type":28,"tag":263,"props":1420,"children":1421},{"style":282},[1422],{"type":38,"value":566},{"type":28,"tag":263,"props":1424,"children":1425},{"class":265,"line":569},[1426,1431,1436,1440,1444,1449],{"type":28,"tag":263,"props":1427,"children":1428},{"style":479},[1429],{"type":38,"value":1430},"        WebDriver",{"type":28,"tag":263,"props":1432,"children":1433},{"style":276},[1434],{"type":38,"value":1435}," driver ",{"type":28,"tag":263,"props":1437,"children":1438},{"style":490},[1439],{"type":38,"value":493},{"type":28,"tag":263,"props":1441,"children":1442},{"style":270},[1443],{"type":38,"value":498},{"type":28,"tag":263,"props":1445,"children":1446},{"style":460},[1447],{"type":38,"value":1448}," ChromeDriver",{"type":28,"tag":263,"props":1450,"children":1451},{"style":282},[1452],{"type":38,"value":508},{"type":28,"tag":263,"props":1454,"children":1455},{"class":265,"line":610},[1456],{"type":28,"tag":263,"props":1457,"children":1458},{"emptyLinePlaceholder":12},[1459],{"type":38,"value":394},{"type":28,"tag":263,"props":1461,"children":1462},{"class":265,"line":619},[1463],{"type":28,"tag":263,"props":1464,"children":1465},{"style":1380},[1466],{"type":38,"value":1467},"        // Ouvrir la page de login\n",{"type":28,"tag":263,"props":1469,"children":1470},{"class":265,"line":979},[1471,1476,1480,1485,1489,1494],{"type":28,"tag":263,"props":1472,"children":1473},{"style":276},[1474],{"type":38,"value":1475},"        driver",{"type":28,"tag":263,"props":1477,"children":1478},{"style":282},[1479],{"type":38,"value":285},{"type":28,"tag":263,"props":1481,"children":1482},{"style":460},[1483],{"type":38,"value":1484},"get",{"type":28,"tag":263,"props":1486,"children":1487},{"style":282},[1488],{"type":38,"value":545},{"type":28,"tag":263,"props":1490,"children":1491},{"style":600},[1492],{"type":38,"value":1493},"\"http://monapplication.com/login\"",{"type":28,"tag":263,"props":1495,"children":1496},{"style":282},[1497],{"type":38,"value":566},{"type":28,"tag":263,"props":1499,"children":1500},{"class":265,"line":1028},[1501],{"type":28,"tag":263,"props":1502,"children":1503},{"emptyLinePlaceholder":12},[1504],{"type":38,"value":394},{"type":28,"tag":263,"props":1506,"children":1507},{"class":265,"line":1071},[1508],{"type":28,"tag":263,"props":1509,"children":1510},{"style":1380},[1511],{"type":38,"value":1512},"        // Entrer les informations d'identification et se connecter\n",{"type":28,"tag":263,"props":1514,"children":1515},{"class":265,"line":1112},[1516,1520,1524,1529,1533,1537,1541,1546,1550,1555,1560,1565,1569,1574],{"type":28,"tag":263,"props":1517,"children":1518},{"style":276},[1519],{"type":38,"value":1475},{"type":28,"tag":263,"props":1521,"children":1522},{"style":282},[1523],{"type":38,"value":285},{"type":28,"tag":263,"props":1525,"children":1526},{"style":460},[1527],{"type":38,"value":1528},"findElement",{"type":28,"tag":263,"props":1530,"children":1531},{"style":282},[1532],{"type":38,"value":545},{"type":28,"tag":263,"props":1534,"children":1535},{"style":276},[1536],{"type":38,"value":1287},{"type":28,"tag":263,"props":1538,"children":1539},{"style":282},[1540],{"type":38,"value":285},{"type":28,"tag":263,"props":1542,"children":1543},{"style":460},[1544],{"type":38,"value":1545},"id",{"type":28,"tag":263,"props":1547,"children":1548},{"style":282},[1549],{"type":38,"value":545},{"type":28,"tag":263,"props":1551,"children":1552},{"style":600},[1553],{"type":38,"value":1554},"\"username\"",{"type":28,"tag":263,"props":1556,"children":1557},{"style":282},[1558],{"type":38,"value":1559},")).",{"type":28,"tag":263,"props":1561,"children":1562},{"style":460},[1563],{"type":38,"value":1564},"sendKeys",{"type":28,"tag":263,"props":1566,"children":1567},{"style":282},[1568],{"type":38,"value":545},{"type":28,"tag":263,"props":1570,"children":1571},{"style":600},[1572],{"type":38,"value":1573},"\"monNomUtilisateur\"",{"type":28,"tag":263,"props":1575,"children":1576},{"style":282},[1577],{"type":38,"value":566},{"type":28,"tag":263,"props":1579,"children":1580},{"class":265,"line":1120},[1581,1585,1589,1593,1597,1601,1605,1609,1613,1618,1622,1626,1630,1635],{"type":28,"tag":263,"props":1582,"children":1583},{"style":276},[1584],{"type":38,"value":1475},{"type":28,"tag":263,"props":1586,"children":1587},{"style":282},[1588],{"type":38,"value":285},{"type":28,"tag":263,"props":1590,"children":1591},{"style":460},[1592],{"type":38,"value":1528},{"type":28,"tag":263,"props":1594,"children":1595},{"style":282},[1596],{"type":38,"value":545},{"type":28,"tag":263,"props":1598,"children":1599},{"style":276},[1600],{"type":38,"value":1287},{"type":28,"tag":263,"props":1602,"children":1603},{"style":282},[1604],{"type":38,"value":285},{"type":28,"tag":263,"props":1606,"children":1607},{"style":460},[1608],{"type":38,"value":1545},{"type":28,"tag":263,"props":1610,"children":1611},{"style":282},[1612],{"type":38,"value":545},{"type":28,"tag":263,"props":1614,"children":1615},{"style":600},[1616],{"type":38,"value":1617},"\"password\"",{"type":28,"tag":263,"props":1619,"children":1620},{"style":282},[1621],{"type":38,"value":1559},{"type":28,"tag":263,"props":1623,"children":1624},{"style":460},[1625],{"type":38,"value":1564},{"type":28,"tag":263,"props":1627,"children":1628},{"style":282},[1629],{"type":38,"value":545},{"type":28,"tag":263,"props":1631,"children":1632},{"style":600},[1633],{"type":38,"value":1634},"\"monMotDePasse\"",{"type":28,"tag":263,"props":1636,"children":1637},{"style":282},[1638],{"type":38,"value":566},{"type":28,"tag":263,"props":1640,"children":1642},{"class":265,"line":1641},18,[1643,1647,1651,1655,1659,1663,1667,1671,1675,1680,1684,1689],{"type":28,"tag":263,"props":1644,"children":1645},{"style":276},[1646],{"type":38,"value":1475},{"type":28,"tag":263,"props":1648,"children":1649},{"style":282},[1650],{"type":38,"value":285},{"type":28,"tag":263,"props":1652,"children":1653},{"style":460},[1654],{"type":38,"value":1528},{"type":28,"tag":263,"props":1656,"children":1657},{"style":282},[1658],{"type":38,"value":545},{"type":28,"tag":263,"props":1660,"children":1661},{"style":276},[1662],{"type":38,"value":1287},{"type":28,"tag":263,"props":1664,"children":1665},{"style":282},[1666],{"type":38,"value":285},{"type":28,"tag":263,"props":1668,"children":1669},{"style":460},[1670],{"type":38,"value":1545},{"type":28,"tag":263,"props":1672,"children":1673},{"style":282},[1674],{"type":38,"value":545},{"type":28,"tag":263,"props":1676,"children":1677},{"style":600},[1678],{"type":38,"value":1679},"\"loginButton\"",{"type":28,"tag":263,"props":1681,"children":1682},{"style":282},[1683],{"type":38,"value":1559},{"type":28,"tag":263,"props":1685,"children":1686},{"style":460},[1687],{"type":38,"value":1688},"click",{"type":28,"tag":263,"props":1690,"children":1691},{"style":282},[1692],{"type":38,"value":508},{"type":28,"tag":263,"props":1694,"children":1696},{"class":265,"line":1695},19,[1697],{"type":28,"tag":263,"props":1698,"children":1699},{"emptyLinePlaceholder":12},[1700],{"type":38,"value":394},{"type":28,"tag":263,"props":1702,"children":1704},{"class":265,"line":1703},20,[1705],{"type":28,"tag":263,"props":1706,"children":1707},{"style":1380},[1708],{"type":38,"value":1709},"        // Vérifier que la connexion a réussi\n",{"type":28,"tag":263,"props":1711,"children":1713},{"class":265,"line":1712},21,[1714,1719,1724,1728,1733,1737,1742],{"type":28,"tag":263,"props":1715,"children":1716},{"style":479},[1717],{"type":38,"value":1718},"        String",{"type":28,"tag":263,"props":1720,"children":1721},{"style":276},[1722],{"type":38,"value":1723}," pageTitre ",{"type":28,"tag":263,"props":1725,"children":1726},{"style":490},[1727],{"type":38,"value":493},{"type":28,"tag":263,"props":1729,"children":1730},{"style":276},[1731],{"type":38,"value":1732}," driver",{"type":28,"tag":263,"props":1734,"children":1735},{"style":282},[1736],{"type":38,"value":285},{"type":28,"tag":263,"props":1738,"children":1739},{"style":460},[1740],{"type":38,"value":1741},"getTitle",{"type":28,"tag":263,"props":1743,"children":1744},{"style":282},[1745],{"type":38,"value":508},{"type":28,"tag":263,"props":1747,"children":1749},{"class":265,"line":1748},22,[1750,1755,1759,1764,1768,1773,1777,1782,1787],{"type":28,"tag":263,"props":1751,"children":1752},{"style":270},[1753],{"type":38,"value":1754},"        if",{"type":28,"tag":263,"props":1756,"children":1757},{"style":282},[1758],{"type":38,"value":545},{"type":28,"tag":263,"props":1760,"children":1761},{"style":276},[1762],{"type":38,"value":1763},"pageTitre",{"type":28,"tag":263,"props":1765,"children":1766},{"style":282},[1767],{"type":38,"value":285},{"type":28,"tag":263,"props":1769,"children":1770},{"style":460},[1771],{"type":38,"value":1772},"equals",{"type":28,"tag":263,"props":1774,"children":1775},{"style":282},[1776],{"type":38,"value":545},{"type":28,"tag":263,"props":1778,"children":1779},{"style":600},[1780],{"type":38,"value":1781},"\"Tableau de bord\"",{"type":28,"tag":263,"props":1783,"children":1784},{"style":282},[1785],{"type":38,"value":1786},"))",{"type":28,"tag":263,"props":1788,"children":1789},{"style":282},[1790],{"type":38,"value":419},{"type":28,"tag":263,"props":1792,"children":1794},{"class":265,"line":1793},23,[1795,1800,1804,1809,1813,1818,1822,1827],{"type":28,"tag":263,"props":1796,"children":1797},{"style":276},[1798],{"type":38,"value":1799},"            System",{"type":28,"tag":263,"props":1801,"children":1802},{"style":282},[1803],{"type":38,"value":285},{"type":28,"tag":263,"props":1805,"children":1806},{"style":276},[1807],{"type":38,"value":1808},"out",{"type":28,"tag":263,"props":1810,"children":1811},{"style":282},[1812],{"type":38,"value":285},{"type":28,"tag":263,"props":1814,"children":1815},{"style":460},[1816],{"type":38,"value":1817},"println",{"type":28,"tag":263,"props":1819,"children":1820},{"style":282},[1821],{"type":38,"value":545},{"type":28,"tag":263,"props":1823,"children":1824},{"style":600},[1825],{"type":38,"value":1826},"\"Connexion réussie !\"",{"type":28,"tag":263,"props":1828,"children":1829},{"style":282},[1830],{"type":38,"value":566},{"type":28,"tag":263,"props":1832,"children":1834},{"class":265,"line":1833},24,[1835,1840,1845],{"type":28,"tag":263,"props":1836,"children":1837},{"style":282},[1838],{"type":38,"value":1839},"        }",{"type":28,"tag":263,"props":1841,"children":1842},{"style":270},[1843],{"type":38,"value":1844}," else",{"type":28,"tag":263,"props":1846,"children":1847},{"style":282},[1848],{"type":38,"value":419},{"type":28,"tag":263,"props":1850,"children":1852},{"class":265,"line":1851},25,[1853,1857,1861,1865,1869,1873,1877,1882],{"type":28,"tag":263,"props":1854,"children":1855},{"style":276},[1856],{"type":38,"value":1799},{"type":28,"tag":263,"props":1858,"children":1859},{"style":282},[1860],{"type":38,"value":285},{"type":28,"tag":263,"props":1862,"children":1863},{"style":276},[1864],{"type":38,"value":1808},{"type":28,"tag":263,"props":1866,"children":1867},{"style":282},[1868],{"type":38,"value":285},{"type":28,"tag":263,"props":1870,"children":1871},{"style":460},[1872],{"type":38,"value":1817},{"type":28,"tag":263,"props":1874,"children":1875},{"style":282},[1876],{"type":38,"value":545},{"type":28,"tag":263,"props":1878,"children":1879},{"style":600},[1880],{"type":38,"value":1881},"\"Échec de la connexion.\"",{"type":28,"tag":263,"props":1883,"children":1884},{"style":282},[1885],{"type":38,"value":566},{"type":28,"tag":263,"props":1887,"children":1889},{"class":265,"line":1888},26,[1890],{"type":28,"tag":263,"props":1891,"children":1892},{"style":282},[1893],{"type":38,"value":1894},"        }\n",{"type":28,"tag":263,"props":1896,"children":1898},{"class":265,"line":1897},27,[1899],{"type":28,"tag":263,"props":1900,"children":1901},{"emptyLinePlaceholder":12},[1902],{"type":38,"value":394},{"type":28,"tag":263,"props":1904,"children":1906},{"class":265,"line":1905},28,[1907],{"type":28,"tag":263,"props":1908,"children":1909},{"style":1380},[1910],{"type":38,"value":1911},"        // Fermer le navigateur\n",{"type":28,"tag":263,"props":1913,"children":1915},{"class":265,"line":1914},29,[1916,1920,1924,1929],{"type":28,"tag":263,"props":1917,"children":1918},{"style":276},[1919],{"type":38,"value":1475},{"type":28,"tag":263,"props":1921,"children":1922},{"style":282},[1923],{"type":38,"value":285},{"type":28,"tag":263,"props":1925,"children":1926},{"style":460},[1927],{"type":38,"value":1928},"quit",{"type":28,"tag":263,"props":1930,"children":1931},{"style":282},[1932],{"type":38,"value":508},{"type":28,"tag":263,"props":1934,"children":1936},{"class":265,"line":1935},30,[1937],{"type":28,"tag":263,"props":1938,"children":1939},{"style":282},[1940],{"type":38,"value":616},{"type":28,"tag":263,"props":1942,"children":1944},{"class":265,"line":1943},31,[1945],{"type":28,"tag":263,"props":1946,"children":1947},{"style":282},[1948],{"type":38,"value":625},{"type":28,"tag":118,"props":1950,"children":1951},{},[1952],{"type":28,"tag":41,"props":1953,"children":1954},{},[1955,1959,1961,1965,1967,1972],{"type":28,"tag":34,"props":1956,"children":1957},{},[1958],{"type":38,"value":128},{"type":38,"value":1960}," : Lorsque vous utilisez ",{"type":28,"tag":34,"props":1962,"children":1963},{},[1964],{"type":38,"value":1145},{"type":38,"value":1966},", essayez d'exécuter vos tests sur plusieurs navigateurs pour vous assurer de la compatibilité de votre application. Utilisez des outils comme ",{"type":28,"tag":34,"props":1968,"children":1969},{},[1970],{"type":38,"value":1971},"BrowserStack",{"type":38,"value":1973}," pour tester sur différents environnements.",{"type":28,"tag":71,"props":1975,"children":1976},{},[],{"type":28,"tag":29,"props":1978,"children":1980},{"id":1979},"présentation-de-quelques-frameworks-populaires-en-java",[1981],{"type":28,"tag":34,"props":1982,"children":1983},{},[1984],{"type":38,"value":1985},"Présentation de quelques frameworks populaires en Java",{"type":28,"tag":41,"props":1987,"children":1988},{},[1989],{"type":38,"value":1990},"Voici une sélection de frameworks populaires que vous pouvez utiliser dans vos projets Java.",{"type":28,"tag":101,"props":1992,"children":1994},{"id":1993},"_1-junit-le-pilier-des-tests-unitaires",[1995,1996],{"type":38,"value":106},{"type":28,"tag":34,"props":1997,"children":1998},{},[1999],{"type":38,"value":2000},"JUnit : Le pilier des tests unitaires",{"type":28,"tag":41,"props":2002,"children":2003},{},[2004,2008],{"type":28,"tag":34,"props":2005,"children":2006},{},[2007],{"type":38,"value":234},{"type":38,"value":2009}," est sans doute le framework de tests unitaires le plus populaire en Java. Il est léger, facile à utiliser et largement adopté dans l'industrie.",{"type":28,"tag":245,"props":2011,"children":2013},{"id":2012},"exemple-simple-avec-junit-5",[2014],{"type":38,"value":2015},"Exemple simple avec JUnit 5 :",{"type":28,"tag":252,"props":2017,"children":2019},{"className":254,"code":2018,"language":256,"meta":7,"style":7},"import org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.*;\n\npublic class CalculatriceTest {\n\n    @Test\n    public void testMultiplication() {\n        Calculatrice calc = new Calculatrice();\n        int resultat = calc.multiplication(4, 5);\n        assertEquals(20, resultat, \"La multiplication de 4 par 5 devrait être 20\");\n    }\n}\n",[2020],{"type":28,"tag":259,"props":2021,"children":2022},{"__ignoreMap":7},[2023,2070,2131,2138,2157,2164,2175,2199,2226,2276,2313,2320],{"type":28,"tag":263,"props":2024,"children":2025},{"class":265,"line":266},[2026,2030,2034,2038,2042,2046,2050,2054,2058,2062,2066],{"type":28,"tag":263,"props":2027,"children":2028},{"style":270},[2029],{"type":38,"value":273},{"type":28,"tag":263,"props":2031,"children":2032},{"style":276},[2033],{"type":38,"value":279},{"type":28,"tag":263,"props":2035,"children":2036},{"style":282},[2037],{"type":38,"value":285},{"type":28,"tag":263,"props":2039,"children":2040},{"style":276},[2041],{"type":38,"value":290},{"type":28,"tag":263,"props":2043,"children":2044},{"style":282},[2045],{"type":38,"value":285},{"type":28,"tag":263,"props":2047,"children":2048},{"style":276},[2049],{"type":38,"value":299},{"type":28,"tag":263,"props":2051,"children":2052},{"style":282},[2053],{"type":38,"value":285},{"type":28,"tag":263,"props":2055,"children":2056},{"style":276},[2057],{"type":38,"value":308},{"type":28,"tag":263,"props":2059,"children":2060},{"style":282},[2061],{"type":38,"value":285},{"type":28,"tag":263,"props":2063,"children":2064},{"style":276},[2065],{"type":38,"value":317},{"type":28,"tag":263,"props":2067,"children":2068},{"style":282},[2069],{"type":38,"value":322},{"type":28,"tag":263,"props":2071,"children":2072},{"class":265,"line":325},[2073,2077,2081,2085,2089,2093,2097,2101,2105,2109,2113,2117,2121,2127],{"type":28,"tag":263,"props":2074,"children":2075},{"style":270},[2076],{"type":38,"value":273},{"type":28,"tag":263,"props":2078,"children":2079},{"style":270},[2080],{"type":38,"value":335},{"type":28,"tag":263,"props":2082,"children":2083},{"style":276},[2084],{"type":38,"value":279},{"type":28,"tag":263,"props":2086,"children":2087},{"style":282},[2088],{"type":38,"value":285},{"type":28,"tag":263,"props":2090,"children":2091},{"style":276},[2092],{"type":38,"value":290},{"type":28,"tag":263,"props":2094,"children":2095},{"style":282},[2096],{"type":38,"value":285},{"type":28,"tag":263,"props":2098,"children":2099},{"style":276},[2100],{"type":38,"value":299},{"type":28,"tag":263,"props":2102,"children":2103},{"style":282},[2104],{"type":38,"value":285},{"type":28,"tag":263,"props":2106,"children":2107},{"style":276},[2108],{"type":38,"value":308},{"type":28,"tag":263,"props":2110,"children":2111},{"style":282},[2112],{"type":38,"value":285},{"type":28,"tag":263,"props":2114,"children":2115},{"style":276},[2116],{"type":38,"value":372},{"type":28,"tag":263,"props":2118,"children":2119},{"style":282},[2120],{"type":38,"value":285},{"type":28,"tag":263,"props":2122,"children":2124},{"style":2123},"--shiki-default:#C6D0F5;--shiki-dark:#79B8FF",[2125],{"type":38,"value":2126},"*",{"type":28,"tag":263,"props":2128,"children":2129},{"style":282},[2130],{"type":38,"value":322},{"type":28,"tag":263,"props":2132,"children":2133},{"class":265,"line":388},[2134],{"type":28,"tag":263,"props":2135,"children":2136},{"emptyLinePlaceholder":12},[2137],{"type":38,"value":394},{"type":28,"tag":263,"props":2139,"children":2140},{"class":265,"line":397},[2141,2145,2149,2153],{"type":28,"tag":263,"props":2142,"children":2143},{"style":270},[2144],{"type":38,"value":403},{"type":28,"tag":263,"props":2146,"children":2147},{"style":270},[2148],{"type":38,"value":408},{"type":28,"tag":263,"props":2150,"children":2151},{"style":411},[2152],{"type":38,"value":414},{"type":28,"tag":263,"props":2154,"children":2155},{"style":282},[2156],{"type":38,"value":419},{"type":28,"tag":263,"props":2158,"children":2159},{"class":265,"line":422},[2160],{"type":28,"tag":263,"props":2161,"children":2162},{"emptyLinePlaceholder":12},[2163],{"type":38,"value":394},{"type":28,"tag":263,"props":2165,"children":2166},{"class":265,"line":430},[2167,2171],{"type":28,"tag":263,"props":2168,"children":2169},{"style":434},[2170],{"type":38,"value":437},{"type":28,"tag":263,"props":2172,"children":2173},{"style":440},[2174],{"type":38,"value":443},{"type":28,"tag":263,"props":2176,"children":2177},{"class":265,"line":446},[2178,2182,2186,2191,2195],{"type":28,"tag":263,"props":2179,"children":2180},{"style":270},[2181],{"type":38,"value":452},{"type":28,"tag":263,"props":2183,"children":2184},{"style":270},[2185],{"type":38,"value":457},{"type":28,"tag":263,"props":2187,"children":2188},{"style":460},[2189],{"type":38,"value":2190}," testMultiplication",{"type":28,"tag":263,"props":2192,"children":2193},{"style":282},[2194],{"type":38,"value":468},{"type":28,"tag":263,"props":2196,"children":2197},{"style":282},[2198],{"type":38,"value":419},{"type":28,"tag":263,"props":2200,"children":2201},{"class":265,"line":475},[2202,2206,2210,2214,2218,2222],{"type":28,"tag":263,"props":2203,"children":2204},{"style":479},[2205],{"type":38,"value":482},{"type":28,"tag":263,"props":2207,"children":2208},{"style":276},[2209],{"type":38,"value":487},{"type":28,"tag":263,"props":2211,"children":2212},{"style":490},[2213],{"type":38,"value":493},{"type":28,"tag":263,"props":2215,"children":2216},{"style":270},[2217],{"type":38,"value":498},{"type":28,"tag":263,"props":2219,"children":2220},{"style":460},[2221],{"type":38,"value":503},{"type":28,"tag":263,"props":2223,"children":2224},{"style":282},[2225],{"type":38,"value":508},{"type":28,"tag":263,"props":2227,"children":2228},{"class":265,"line":511},[2229,2233,2237,2241,2245,2249,2254,2258,2263,2267,2272],{"type":28,"tag":263,"props":2230,"children":2231},{"style":270},[2232],{"type":38,"value":517},{"type":28,"tag":263,"props":2234,"children":2235},{"style":276},[2236],{"type":38,"value":522},{"type":28,"tag":263,"props":2238,"children":2239},{"style":490},[2240],{"type":38,"value":493},{"type":28,"tag":263,"props":2242,"children":2243},{"style":276},[2244],{"type":38,"value":531},{"type":28,"tag":263,"props":2246,"children":2247},{"style":282},[2248],{"type":38,"value":285},{"type":28,"tag":263,"props":2250,"children":2251},{"style":460},[2252],{"type":38,"value":2253},"multiplication",{"type":28,"tag":263,"props":2255,"children":2256},{"style":282},[2257],{"type":38,"value":545},{"type":28,"tag":263,"props":2259,"children":2260},{"style":548},[2261],{"type":38,"value":2262},"4",{"type":28,"tag":263,"props":2264,"children":2265},{"style":282},[2266],{"type":38,"value":556},{"type":28,"tag":263,"props":2268,"children":2269},{"style":548},[2270],{"type":38,"value":2271}," 5",{"type":28,"tag":263,"props":2273,"children":2274},{"style":282},[2275],{"type":38,"value":566},{"type":28,"tag":263,"props":2277,"children":2278},{"class":265,"line":569},[2279,2283,2287,2292,2296,2300,2304,2309],{"type":28,"tag":263,"props":2280,"children":2281},{"style":460},[2282],{"type":38,"value":575},{"type":28,"tag":263,"props":2284,"children":2285},{"style":282},[2286],{"type":38,"value":545},{"type":28,"tag":263,"props":2288,"children":2289},{"style":548},[2290],{"type":38,"value":2291},"20",{"type":28,"tag":263,"props":2293,"children":2294},{"style":282},[2295],{"type":38,"value":556},{"type":28,"tag":263,"props":2297,"children":2298},{"style":276},[2299],{"type":38,"value":593},{"type":28,"tag":263,"props":2301,"children":2302},{"style":282},[2303],{"type":38,"value":556},{"type":28,"tag":263,"props":2305,"children":2306},{"style":600},[2307],{"type":38,"value":2308}," \"La multiplication de 4 par 5 devrait être 20\"",{"type":28,"tag":263,"props":2310,"children":2311},{"style":282},[2312],{"type":38,"value":566},{"type":28,"tag":263,"props":2314,"children":2315},{"class":265,"line":610},[2316],{"type":28,"tag":263,"props":2317,"children":2318},{"style":282},[2319],{"type":38,"value":616},{"type":28,"tag":263,"props":2321,"children":2322},{"class":265,"line":619},[2323],{"type":28,"tag":263,"props":2324,"children":2325},{"style":282},[2326],{"type":38,"value":625},{"type":28,"tag":101,"props":2328,"children":2330},{"id":2329},"_2-testng-flexibilité-et-fonctionnalités-avancées",[2331,2332],{"type":38,"value":136},{"type":28,"tag":34,"props":2333,"children":2334},{},[2335],{"type":38,"value":2336},"TestNG : Flexibilité et fonctionnalités avancées",{"type":28,"tag":41,"props":2338,"children":2339},{},[2340,2344],{"type":28,"tag":34,"props":2341,"children":2342},{},[2343],{"type":38,"value":241},{"type":38,"value":2345}," est un autre framework de tests unitaires, mais il offre des fonctionnalités supplémentaires par rapport à JUnit.",{"type":28,"tag":245,"props":2347,"children":2349},{"id":2348},"exemple-de-test-avec-testng",[2350],{"type":38,"value":2351},"Exemple de test avec TestNG :",{"type":28,"tag":252,"props":2353,"children":2355},{"className":254,"code":2354,"language":256,"meta":7,"style":7},"import org.testng.annotations.Test;\nimport static org.testng.Assert.assertEquals;\n\npublic class CalculatriceTest {\n\n    @Test\n    public void testSoustraction() {\n        Calculatrice calc = new Calculatrice();\n        int resultat = calc.soustraction(10, 3);\n        assertEquals(7, resultat, \"La soustraction de 10 et 3 devrait être 7\");\n    }\n}\n",[2356],{"type":28,"tag":259,"props":2357,"children":2358},{"__ignoreMap":7},[2359,2400,2444,2451,2470,2477,2488,2512,2539,2588,2625,2632],{"type":28,"tag":263,"props":2360,"children":2361},{"class":265,"line":266},[2362,2366,2370,2374,2379,2383,2388,2392,2396],{"type":28,"tag":263,"props":2363,"children":2364},{"style":270},[2365],{"type":38,"value":273},{"type":28,"tag":263,"props":2367,"children":2368},{"style":276},[2369],{"type":38,"value":279},{"type":28,"tag":263,"props":2371,"children":2372},{"style":282},[2373],{"type":38,"value":285},{"type":28,"tag":263,"props":2375,"children":2376},{"style":276},[2377],{"type":38,"value":2378},"testng",{"type":28,"tag":263,"props":2380,"children":2381},{"style":282},[2382],{"type":38,"value":285},{"type":28,"tag":263,"props":2384,"children":2385},{"style":276},[2386],{"type":38,"value":2387},"annotations",{"type":28,"tag":263,"props":2389,"children":2390},{"style":282},[2391],{"type":38,"value":285},{"type":28,"tag":263,"props":2393,"children":2394},{"style":276},[2395],{"type":38,"value":317},{"type":28,"tag":263,"props":2397,"children":2398},{"style":282},[2399],{"type":38,"value":322},{"type":28,"tag":263,"props":2401,"children":2402},{"class":265,"line":325},[2403,2407,2411,2415,2419,2423,2427,2432,2436,2440],{"type":28,"tag":263,"props":2404,"children":2405},{"style":270},[2406],{"type":38,"value":273},{"type":28,"tag":263,"props":2408,"children":2409},{"style":270},[2410],{"type":38,"value":335},{"type":28,"tag":263,"props":2412,"children":2413},{"style":276},[2414],{"type":38,"value":279},{"type":28,"tag":263,"props":2416,"children":2417},{"style":282},[2418],{"type":38,"value":285},{"type":28,"tag":263,"props":2420,"children":2421},{"style":276},[2422],{"type":38,"value":2378},{"type":28,"tag":263,"props":2424,"children":2425},{"style":282},[2426],{"type":38,"value":285},{"type":28,"tag":263,"props":2428,"children":2429},{"style":276},[2430],{"type":38,"value":2431},"Assert",{"type":28,"tag":263,"props":2433,"children":2434},{"style":282},[2435],{"type":38,"value":285},{"type":28,"tag":263,"props":2437,"children":2438},{"style":276},[2439],{"type":38,"value":381},{"type":28,"tag":263,"props":2441,"children":2442},{"style":282},[2443],{"type":38,"value":322},{"type":28,"tag":263,"props":2445,"children":2446},{"class":265,"line":388},[2447],{"type":28,"tag":263,"props":2448,"children":2449},{"emptyLinePlaceholder":12},[2450],{"type":38,"value":394},{"type":28,"tag":263,"props":2452,"children":2453},{"class":265,"line":397},[2454,2458,2462,2466],{"type":28,"tag":263,"props":2455,"children":2456},{"style":270},[2457],{"type":38,"value":403},{"type":28,"tag":263,"props":2459,"children":2460},{"style":270},[2461],{"type":38,"value":408},{"type":28,"tag":263,"props":2463,"children":2464},{"style":411},[2465],{"type":38,"value":414},{"type":28,"tag":263,"props":2467,"children":2468},{"style":282},[2469],{"type":38,"value":419},{"type":28,"tag":263,"props":2471,"children":2472},{"class":265,"line":422},[2473],{"type":28,"tag":263,"props":2474,"children":2475},{"emptyLinePlaceholder":12},[2476],{"type":38,"value":394},{"type":28,"tag":263,"props":2478,"children":2479},{"class":265,"line":430},[2480,2484],{"type":28,"tag":263,"props":2481,"children":2482},{"style":434},[2483],{"type":38,"value":437},{"type":28,"tag":263,"props":2485,"children":2486},{"style":440},[2487],{"type":38,"value":443},{"type":28,"tag":263,"props":2489,"children":2490},{"class":265,"line":446},[2491,2495,2499,2504,2508],{"type":28,"tag":263,"props":2492,"children":2493},{"style":270},[2494],{"type":38,"value":452},{"type":28,"tag":263,"props":2496,"children":2497},{"style":270},[2498],{"type":38,"value":457},{"type":28,"tag":263,"props":2500,"children":2501},{"style":460},[2502],{"type":38,"value":2503}," testSoustraction",{"type":28,"tag":263,"props":2505,"children":2506},{"style":282},[2507],{"type":38,"value":468},{"type":28,"tag":263,"props":2509,"children":2510},{"style":282},[2511],{"type":38,"value":419},{"type":28,"tag":263,"props":2513,"children":2514},{"class":265,"line":475},[2515,2519,2523,2527,2531,2535],{"type":28,"tag":263,"props":2516,"children":2517},{"style":479},[2518],{"type":38,"value":482},{"type":28,"tag":263,"props":2520,"children":2521},{"style":276},[2522],{"type":38,"value":487},{"type":28,"tag":263,"props":2524,"children":2525},{"style":490},[2526],{"type":38,"value":493},{"type":28,"tag":263,"props":2528,"children":2529},{"style":270},[2530],{"type":38,"value":498},{"type":28,"tag":263,"props":2532,"children":2533},{"style":460},[2534],{"type":38,"value":503},{"type":28,"tag":263,"props":2536,"children":2537},{"style":282},[2538],{"type":38,"value":508},{"type":28,"tag":263,"props":2540,"children":2541},{"class":265,"line":511},[2542,2546,2550,2554,2558,2562,2567,2571,2576,2580,2584],{"type":28,"tag":263,"props":2543,"children":2544},{"style":270},[2545],{"type":38,"value":517},{"type":28,"tag":263,"props":2547,"children":2548},{"style":276},[2549],{"type":38,"value":522},{"type":28,"tag":263,"props":2551,"children":2552},{"style":490},[2553],{"type":38,"value":493},{"type":28,"tag":263,"props":2555,"children":2556},{"style":276},[2557],{"type":38,"value":531},{"type":28,"tag":263,"props":2559,"children":2560},{"style":282},[2561],{"type":38,"value":285},{"type":28,"tag":263,"props":2563,"children":2564},{"style":460},[2565],{"type":38,"value":2566},"soustraction",{"type":28,"tag":263,"props":2568,"children":2569},{"style":282},[2570],{"type":38,"value":545},{"type":28,"tag":263,"props":2572,"children":2573},{"style":548},[2574],{"type":38,"value":2575},"10",{"type":28,"tag":263,"props":2577,"children":2578},{"style":282},[2579],{"type":38,"value":556},{"type":28,"tag":263,"props":2581,"children":2582},{"style":548},[2583],{"type":38,"value":561},{"type":28,"tag":263,"props":2585,"children":2586},{"style":282},[2587],{"type":38,"value":566},{"type":28,"tag":263,"props":2589,"children":2590},{"class":265,"line":569},[2591,2595,2599,2604,2608,2612,2616,2621],{"type":28,"tag":263,"props":2592,"children":2593},{"style":460},[2594],{"type":38,"value":575},{"type":28,"tag":263,"props":2596,"children":2597},{"style":282},[2598],{"type":38,"value":545},{"type":28,"tag":263,"props":2600,"children":2601},{"style":548},[2602],{"type":38,"value":2603},"7",{"type":28,"tag":263,"props":2605,"children":2606},{"style":282},[2607],{"type":38,"value":556},{"type":28,"tag":263,"props":2609,"children":2610},{"style":276},[2611],{"type":38,"value":593},{"type":28,"tag":263,"props":2613,"children":2614},{"style":282},[2615],{"type":38,"value":556},{"type":28,"tag":263,"props":2617,"children":2618},{"style":600},[2619],{"type":38,"value":2620}," \"La soustraction de 10 et 3 devrait être 7\"",{"type":28,"tag":263,"props":2622,"children":2623},{"style":282},[2624],{"type":38,"value":566},{"type":28,"tag":263,"props":2626,"children":2627},{"class":265,"line":610},[2628],{"type":28,"tag":263,"props":2629,"children":2630},{"style":282},[2631],{"type":38,"value":616},{"type":28,"tag":263,"props":2633,"children":2634},{"class":265,"line":619},[2635],{"type":28,"tag":263,"props":2636,"children":2637},{"style":282},[2638],{"type":38,"value":625},{"type":28,"tag":101,"props":2640,"children":2642},{"id":2641},"_3-mockito-pour-des-tests-unitaires-et-dintégration-avec-des-mocks",[2643,2644],{"type":38,"value":152},{"type":28,"tag":34,"props":2645,"children":2646},{},[2647],{"type":38,"value":2648},"Mockito : Pour des tests unitaires et d'intégration avec des mocks",{"type":28,"tag":41,"props":2650,"children":2651},{},[2652,2657],{"type":28,"tag":34,"props":2653,"children":2654},{},[2655],{"type":38,"value":2656},"Mockito",{"type":38,"value":2658}," est un framework spécialisé dans les tests unitaires qui nécessitent de simuler le comportement de certains objets.",{"type":28,"tag":245,"props":2660,"children":2662},{"id":2661},"exemple-de-test-avec-mockito",[2663],{"type":38,"value":2664},"Exemple de test avec Mockito :",{"type":28,"tag":252,"props":2666,"children":2668},{"className":254,"code":2667,"language":256,"meta":7,"style":7},"import org.junit.jupiter.api.Test;\nimport static org.mockito.Mockito.*;\nimport static org.junit.jupiter.api.Assertions.*;\n\npublic class ServiceTest {\n    \n    @Test\n    public void testServiceAvecMock() {\n        // Mock d'une dépendance\n        UserRepository userRepository = mock(UserRepository.class);\n        when(userRepository.findUserById(1)).thenReturn(new User(\"John\", \"Doe\"));\n\n        UserService userService = new UserService(userRepository);\n        User user = userService.getUser(1);\n\n        // Vérification\n        assertEquals(\"John\", user.getFirstName(), \"Le prénom devrait être John\");\n        verify(userRepository).findUserById(1);  // Vérifie que la méthode a bien été appelée\n    }\n}\n",[2669],{"type":28,"tag":259,"props":2670,"children":2671},{"__ignoreMap":7},[2672,2719,2763,2822,2829,2849,2857,2868,2892,2900,2944,3022,3029,3066,3106,3113,3121,3167,3210,3217],{"type":28,"tag":263,"props":2673,"children":2674},{"class":265,"line":266},[2675,2679,2683,2687,2691,2695,2699,2703,2707,2711,2715],{"type":28,"tag":263,"props":2676,"children":2677},{"style":270},[2678],{"type":38,"value":273},{"type":28,"tag":263,"props":2680,"children":2681},{"style":276},[2682],{"type":38,"value":279},{"type":28,"tag":263,"props":2684,"children":2685},{"style":282},[2686],{"type":38,"value":285},{"type":28,"tag":263,"props":2688,"children":2689},{"style":276},[2690],{"type":38,"value":290},{"type":28,"tag":263,"props":2692,"children":2693},{"style":282},[2694],{"type":38,"value":285},{"type":28,"tag":263,"props":2696,"children":2697},{"style":276},[2698],{"type":38,"value":299},{"type":28,"tag":263,"props":2700,"children":2701},{"style":282},[2702],{"type":38,"value":285},{"type":28,"tag":263,"props":2704,"children":2705},{"style":276},[2706],{"type":38,"value":308},{"type":28,"tag":263,"props":2708,"children":2709},{"style":282},[2710],{"type":38,"value":285},{"type":28,"tag":263,"props":2712,"children":2713},{"style":276},[2714],{"type":38,"value":317},{"type":28,"tag":263,"props":2716,"children":2717},{"style":282},[2718],{"type":38,"value":322},{"type":28,"tag":263,"props":2720,"children":2721},{"class":265,"line":325},[2722,2726,2730,2734,2738,2743,2747,2751,2755,2759],{"type":28,"tag":263,"props":2723,"children":2724},{"style":270},[2725],{"type":38,"value":273},{"type":28,"tag":263,"props":2727,"children":2728},{"style":270},[2729],{"type":38,"value":335},{"type":28,"tag":263,"props":2731,"children":2732},{"style":276},[2733],{"type":38,"value":279},{"type":28,"tag":263,"props":2735,"children":2736},{"style":282},[2737],{"type":38,"value":285},{"type":28,"tag":263,"props":2739,"children":2740},{"style":276},[2741],{"type":38,"value":2742},"mockito",{"type":28,"tag":263,"props":2744,"children":2745},{"style":282},[2746],{"type":38,"value":285},{"type":28,"tag":263,"props":2748,"children":2749},{"style":276},[2750],{"type":38,"value":2656},{"type":28,"tag":263,"props":2752,"children":2753},{"style":282},[2754],{"type":38,"value":285},{"type":28,"tag":263,"props":2756,"children":2757},{"style":2123},[2758],{"type":38,"value":2126},{"type":28,"tag":263,"props":2760,"children":2761},{"style":282},[2762],{"type":38,"value":322},{"type":28,"tag":263,"props":2764,"children":2765},{"class":265,"line":388},[2766,2770,2774,2778,2782,2786,2790,2794,2798,2802,2806,2810,2814,2818],{"type":28,"tag":263,"props":2767,"children":2768},{"style":270},[2769],{"type":38,"value":273},{"type":28,"tag":263,"props":2771,"children":2772},{"style":270},[2773],{"type":38,"value":335},{"type":28,"tag":263,"props":2775,"children":2776},{"style":276},[2777],{"type":38,"value":279},{"type":28,"tag":263,"props":2779,"children":2780},{"style":282},[2781],{"type":38,"value":285},{"type":28,"tag":263,"props":2783,"children":2784},{"style":276},[2785],{"type":38,"value":290},{"type":28,"tag":263,"props":2787,"children":2788},{"style":282},[2789],{"type":38,"value":285},{"type":28,"tag":263,"props":2791,"children":2792},{"style":276},[2793],{"type":38,"value":299},{"type":28,"tag":263,"props":2795,"children":2796},{"style":282},[2797],{"type":38,"value":285},{"type":28,"tag":263,"props":2799,"children":2800},{"style":276},[2801],{"type":38,"value":308},{"type":28,"tag":263,"props":2803,"children":2804},{"style":282},[2805],{"type":38,"value":285},{"type":28,"tag":263,"props":2807,"children":2808},{"style":276},[2809],{"type":38,"value":372},{"type":28,"tag":263,"props":2811,"children":2812},{"style":282},[2813],{"type":38,"value":285},{"type":28,"tag":263,"props":2815,"children":2816},{"style":2123},[2817],{"type":38,"value":2126},{"type":28,"tag":263,"props":2819,"children":2820},{"style":282},[2821],{"type":38,"value":322},{"type":28,"tag":263,"props":2823,"children":2824},{"class":265,"line":397},[2825],{"type":28,"tag":263,"props":2826,"children":2827},{"emptyLinePlaceholder":12},[2828],{"type":38,"value":394},{"type":28,"tag":263,"props":2830,"children":2831},{"class":265,"line":422},[2832,2836,2840,2845],{"type":28,"tag":263,"props":2833,"children":2834},{"style":270},[2835],{"type":38,"value":403},{"type":28,"tag":263,"props":2837,"children":2838},{"style":270},[2839],{"type":38,"value":408},{"type":28,"tag":263,"props":2841,"children":2842},{"style":411},[2843],{"type":38,"value":2844}," ServiceTest",{"type":28,"tag":263,"props":2846,"children":2847},{"style":282},[2848],{"type":38,"value":419},{"type":28,"tag":263,"props":2850,"children":2851},{"class":265,"line":430},[2852],{"type":28,"tag":263,"props":2853,"children":2854},{"style":276},[2855],{"type":38,"value":2856},"    \n",{"type":28,"tag":263,"props":2858,"children":2859},{"class":265,"line":446},[2860,2864],{"type":28,"tag":263,"props":2861,"children":2862},{"style":434},[2863],{"type":38,"value":437},{"type":28,"tag":263,"props":2865,"children":2866},{"style":440},[2867],{"type":38,"value":443},{"type":28,"tag":263,"props":2869,"children":2870},{"class":265,"line":475},[2871,2875,2879,2884,2888],{"type":28,"tag":263,"props":2872,"children":2873},{"style":270},[2874],{"type":38,"value":452},{"type":28,"tag":263,"props":2876,"children":2877},{"style":270},[2878],{"type":38,"value":457},{"type":28,"tag":263,"props":2880,"children":2881},{"style":460},[2882],{"type":38,"value":2883}," testServiceAvecMock",{"type":28,"tag":263,"props":2885,"children":2886},{"style":282},[2887],{"type":38,"value":468},{"type":28,"tag":263,"props":2889,"children":2890},{"style":282},[2891],{"type":38,"value":419},{"type":28,"tag":263,"props":2893,"children":2894},{"class":265,"line":511},[2895],{"type":28,"tag":263,"props":2896,"children":2897},{"style":1380},[2898],{"type":38,"value":2899},"        // Mock d'une dépendance\n",{"type":28,"tag":263,"props":2901,"children":2902},{"class":265,"line":569},[2903,2908,2913,2917,2922,2926,2931,2935,2940],{"type":28,"tag":263,"props":2904,"children":2905},{"style":479},[2906],{"type":38,"value":2907},"        UserRepository",{"type":28,"tag":263,"props":2909,"children":2910},{"style":276},[2911],{"type":38,"value":2912}," userRepository ",{"type":28,"tag":263,"props":2914,"children":2915},{"style":490},[2916],{"type":38,"value":493},{"type":28,"tag":263,"props":2918,"children":2919},{"style":460},[2920],{"type":38,"value":2921}," mock",{"type":28,"tag":263,"props":2923,"children":2924},{"style":282},[2925],{"type":38,"value":545},{"type":28,"tag":263,"props":2927,"children":2928},{"style":276},[2929],{"type":38,"value":2930},"UserRepository",{"type":28,"tag":263,"props":2932,"children":2933},{"style":282},[2934],{"type":38,"value":285},{"type":28,"tag":263,"props":2936,"children":2937},{"style":276},[2938],{"type":38,"value":2939},"class",{"type":28,"tag":263,"props":2941,"children":2942},{"style":282},[2943],{"type":38,"value":566},{"type":28,"tag":263,"props":2945,"children":2946},{"class":265,"line":610},[2947,2952,2956,2961,2965,2970,2974,2979,2983,2988,2992,2997,3001,3005,3009,3013,3017],{"type":28,"tag":263,"props":2948,"children":2949},{"style":460},[2950],{"type":38,"value":2951},"        when",{"type":28,"tag":263,"props":2953,"children":2954},{"style":282},[2955],{"type":38,"value":545},{"type":28,"tag":263,"props":2957,"children":2958},{"style":276},[2959],{"type":38,"value":2960},"userRepository",{"type":28,"tag":263,"props":2962,"children":2963},{"style":282},[2964],{"type":38,"value":285},{"type":28,"tag":263,"props":2966,"children":2967},{"style":460},[2968],{"type":38,"value":2969},"findUserById",{"type":28,"tag":263,"props":2971,"children":2972},{"style":282},[2973],{"type":38,"value":545},{"type":28,"tag":263,"props":2975,"children":2976},{"style":548},[2977],{"type":38,"value":2978},"1",{"type":28,"tag":263,"props":2980,"children":2981},{"style":282},[2982],{"type":38,"value":1559},{"type":28,"tag":263,"props":2984,"children":2985},{"style":460},[2986],{"type":38,"value":2987},"thenReturn",{"type":28,"tag":263,"props":2989,"children":2990},{"style":282},[2991],{"type":38,"value":545},{"type":28,"tag":263,"props":2993,"children":2994},{"style":270},[2995],{"type":38,"value":2996},"new",{"type":28,"tag":263,"props":2998,"children":2999},{"style":460},[3000],{"type":38,"value":1003},{"type":28,"tag":263,"props":3002,"children":3003},{"style":282},[3004],{"type":38,"value":545},{"type":28,"tag":263,"props":3006,"children":3007},{"style":600},[3008],{"type":38,"value":1012},{"type":28,"tag":263,"props":3010,"children":3011},{"style":282},[3012],{"type":38,"value":556},{"type":28,"tag":263,"props":3014,"children":3015},{"style":600},[3016],{"type":38,"value":1021},{"type":28,"tag":263,"props":3018,"children":3019},{"style":282},[3020],{"type":38,"value":3021},"));\n",{"type":28,"tag":263,"props":3023,"children":3024},{"class":265,"line":619},[3025],{"type":28,"tag":263,"props":3026,"children":3027},{"emptyLinePlaceholder":12},[3028],{"type":38,"value":394},{"type":28,"tag":263,"props":3030,"children":3031},{"class":265,"line":979},[3032,3037,3042,3046,3050,3054,3058,3062],{"type":28,"tag":263,"props":3033,"children":3034},{"style":479},[3035],{"type":38,"value":3036},"        UserService",{"type":28,"tag":263,"props":3038,"children":3039},{"style":276},[3040],{"type":38,"value":3041}," userService ",{"type":28,"tag":263,"props":3043,"children":3044},{"style":490},[3045],{"type":38,"value":493},{"type":28,"tag":263,"props":3047,"children":3048},{"style":270},[3049],{"type":38,"value":498},{"type":28,"tag":263,"props":3051,"children":3052},{"style":460},[3053],{"type":38,"value":925},{"type":28,"tag":263,"props":3055,"children":3056},{"style":282},[3057],{"type":38,"value":545},{"type":28,"tag":263,"props":3059,"children":3060},{"style":276},[3061],{"type":38,"value":2960},{"type":28,"tag":263,"props":3063,"children":3064},{"style":282},[3065],{"type":38,"value":566},{"type":28,"tag":263,"props":3067,"children":3068},{"class":265,"line":1028},[3069,3073,3077,3081,3085,3089,3094,3098,3102],{"type":28,"tag":263,"props":3070,"children":3071},{"style":479},[3072],{"type":38,"value":985},{"type":28,"tag":263,"props":3074,"children":3075},{"style":276},[3076],{"type":38,"value":990},{"type":28,"tag":263,"props":3078,"children":3079},{"style":490},[3080],{"type":38,"value":493},{"type":28,"tag":263,"props":3082,"children":3083},{"style":276},[3084],{"type":38,"value":930},{"type":28,"tag":263,"props":3086,"children":3087},{"style":282},[3088],{"type":38,"value":285},{"type":28,"tag":263,"props":3090,"children":3091},{"style":460},[3092],{"type":38,"value":3093},"getUser",{"type":28,"tag":263,"props":3095,"children":3096},{"style":282},[3097],{"type":38,"value":545},{"type":28,"tag":263,"props":3099,"children":3100},{"style":548},[3101],{"type":38,"value":2978},{"type":28,"tag":263,"props":3103,"children":3104},{"style":282},[3105],{"type":38,"value":566},{"type":28,"tag":263,"props":3107,"children":3108},{"class":265,"line":1071},[3109],{"type":28,"tag":263,"props":3110,"children":3111},{"emptyLinePlaceholder":12},[3112],{"type":38,"value":394},{"type":28,"tag":263,"props":3114,"children":3115},{"class":265,"line":1112},[3116],{"type":28,"tag":263,"props":3117,"children":3118},{"style":1380},[3119],{"type":38,"value":3120},"        // Vérification\n",{"type":28,"tag":263,"props":3122,"children":3123},{"class":265,"line":1120},[3124,3128,3132,3136,3140,3145,3149,3154,3158,3163],{"type":28,"tag":263,"props":3125,"children":3126},{"style":460},[3127],{"type":38,"value":575},{"type":28,"tag":263,"props":3129,"children":3130},{"style":282},[3131],{"type":38,"value":545},{"type":28,"tag":263,"props":3133,"children":3134},{"style":600},[3135],{"type":38,"value":1012},{"type":28,"tag":263,"props":3137,"children":3138},{"style":282},[3139],{"type":38,"value":556},{"type":28,"tag":263,"props":3141,"children":3142},{"style":276},[3143],{"type":38,"value":3144}," user",{"type":28,"tag":263,"props":3146,"children":3147},{"style":282},[3148],{"type":38,"value":285},{"type":28,"tag":263,"props":3150,"children":3151},{"style":460},[3152],{"type":38,"value":3153},"getFirstName",{"type":28,"tag":263,"props":3155,"children":3156},{"style":282},[3157],{"type":38,"value":1100},{"type":28,"tag":263,"props":3159,"children":3160},{"style":600},[3161],{"type":38,"value":3162}," \"Le prénom devrait être John\"",{"type":28,"tag":263,"props":3164,"children":3165},{"style":282},[3166],{"type":38,"value":566},{"type":28,"tag":263,"props":3168,"children":3169},{"class":265,"line":1641},[3170,3175,3179,3183,3188,3192,3196,3200,3205],{"type":28,"tag":263,"props":3171,"children":3172},{"style":460},[3173],{"type":38,"value":3174},"        verify",{"type":28,"tag":263,"props":3176,"children":3177},{"style":282},[3178],{"type":38,"value":545},{"type":28,"tag":263,"props":3180,"children":3181},{"style":276},[3182],{"type":38,"value":2960},{"type":28,"tag":263,"props":3184,"children":3185},{"style":282},[3186],{"type":38,"value":3187},").",{"type":28,"tag":263,"props":3189,"children":3190},{"style":460},[3191],{"type":38,"value":2969},{"type":28,"tag":263,"props":3193,"children":3194},{"style":282},[3195],{"type":38,"value":545},{"type":28,"tag":263,"props":3197,"children":3198},{"style":548},[3199],{"type":38,"value":2978},{"type":28,"tag":263,"props":3201,"children":3202},{"style":282},[3203],{"type":38,"value":3204},");",{"type":28,"tag":263,"props":3206,"children":3207},{"style":1380},[3208],{"type":38,"value":3209},"  // Vérifie que la méthode a bien été appelée\n",{"type":28,"tag":263,"props":3211,"children":3212},{"class":265,"line":1695},[3213],{"type":28,"tag":263,"props":3214,"children":3215},{"style":282},[3216],{"type":38,"value":616},{"type":28,"tag":263,"props":3218,"children":3219},{"class":265,"line":1703},[3220],{"type":28,"tag":263,"props":3221,"children":3222},{"style":282},[3223],{"type":38,"value":625},{"type":28,"tag":3225,"props":3226,"children":3231},"cta",{"cta":3227,"href":3228,"title":3229,"type":3230},"Réserver mon diagnostic gratuit →","https://app.kamanga.fr/forms/discovery-call","Vos développeurs ont peur de déployer en production ?","call",[3232],{"type":28,"tag":41,"props":3233,"children":3234},{},[3235],{"type":38,"value":3236},"Pas de filet de sécurité, des bugs qui remontent des utilisateurs plutôt que des tests, et chaque release génère de l’anxiété dans l’équipe. Réservons 30 minutes pour diagnostiquer votre stratégie de tests et définir les priorités pour regagner confiance dans vos déploiements.",{"type":28,"tag":101,"props":3238,"children":3240},{"id":3239},"_4-selenium-automatisation-des-tests-fonctionnels",[3241,3243],{"type":38,"value":3242},"4. ",{"type":28,"tag":34,"props":3244,"children":3245},{},[3246],{"type":38,"value":3247},"Selenium : Automatisation des tests fonctionnels",{"type":28,"tag":41,"props":3249,"children":3250},{},[3251,3255],{"type":28,"tag":34,"props":3252,"children":3253},{},[3254],{"type":38,"value":1145},{"type":38,"value":3256}," est le framework de référence pour les tests fonctionnels, spécialement pour les applications web.",{"type":28,"tag":245,"props":3258,"children":3260},{"id":3259},"exemple-de-test-fonctionnel-avec-selenium-java",[3261],{"type":38,"value":3262},"Exemple de test fonctionnel avec Selenium (Java) :",{"type":28,"tag":252,"props":3264,"children":3266},{"className":254,"code":3265,"language":256,"meta":7,"style":7},"import org.openqa.selenium.By;\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.chrome.ChromeDriver;\n\npublic class TestFonctionnel {\n\n    public static void main(String[] args) {\n        // Configuration du WebDriver pour Chrome\n        System.setProperty(\"webdriver.chrome.driver\", \"path_to_chromedriver\");\n        WebDriver driver = new ChromeDriver();\n\n        // Ouvrir la page d'accueil\n        driver.get(\"http://monapplication.com\");\n\n        // Vérification du titre de la page\n        String titre = driver.getTitle();\n        if(titre.equals(\"Accueil - Mon Application\")) {\n            System.out.println(\"Page d'accueil chargée correctement !\");\n        }\n\n        // Fermer le navigateur\n        driver.quit();\n    }\n}\n",[3267],{"type":28,"tag":259,"props":3268,"children":3269},{"__ignoreMap":7},[3270,3309,3348,3395,3402,3422,3429,3472,3480,3515,3542,3549,3557,3585,3592,3600,3632,3673,3709,3716,3723,3730,3749,3756],{"type":28,"tag":263,"props":3271,"children":3272},{"class":265,"line":266},[3273,3277,3281,3285,3289,3293,3297,3301,3305],{"type":28,"tag":263,"props":3274,"children":3275},{"style":270},[3276],{"type":38,"value":273},{"type":28,"tag":263,"props":3278,"children":3279},{"style":276},[3280],{"type":38,"value":279},{"type":28,"tag":263,"props":3282,"children":3283},{"style":282},[3284],{"type":38,"value":285},{"type":28,"tag":263,"props":3286,"children":3287},{"style":276},[3288],{"type":38,"value":1180},{"type":28,"tag":263,"props":3290,"children":3291},{"style":282},[3292],{"type":38,"value":285},{"type":28,"tag":263,"props":3294,"children":3295},{"style":276},[3296],{"type":38,"value":1189},{"type":28,"tag":263,"props":3298,"children":3299},{"style":282},[3300],{"type":38,"value":285},{"type":28,"tag":263,"props":3302,"children":3303},{"style":276},[3304],{"type":38,"value":1287},{"type":28,"tag":263,"props":3306,"children":3307},{"style":282},[3308],{"type":38,"value":322},{"type":28,"tag":263,"props":3310,"children":3311},{"class":265,"line":325},[3312,3316,3320,3324,3328,3332,3336,3340,3344],{"type":28,"tag":263,"props":3313,"children":3314},{"style":270},[3315],{"type":38,"value":273},{"type":28,"tag":263,"props":3317,"children":3318},{"style":276},[3319],{"type":38,"value":279},{"type":28,"tag":263,"props":3321,"children":3322},{"style":282},[3323],{"type":38,"value":285},{"type":28,"tag":263,"props":3325,"children":3326},{"style":276},[3327],{"type":38,"value":1180},{"type":28,"tag":263,"props":3329,"children":3330},{"style":282},[3331],{"type":38,"value":285},{"type":28,"tag":263,"props":3333,"children":3334},{"style":276},[3335],{"type":38,"value":1189},{"type":28,"tag":263,"props":3337,"children":3338},{"style":282},[3339],{"type":38,"value":285},{"type":28,"tag":263,"props":3341,"children":3342},{"style":276},[3343],{"type":38,"value":1198},{"type":28,"tag":263,"props":3345,"children":3346},{"style":282},[3347],{"type":38,"value":322},{"type":28,"tag":263,"props":3349,"children":3350},{"class":265,"line":388},[3351,3355,3359,3363,3367,3371,3375,3379,3383,3387,3391],{"type":28,"tag":263,"props":3352,"children":3353},{"style":270},[3354],{"type":38,"value":273},{"type":28,"tag":263,"props":3356,"children":3357},{"style":276},[3358],{"type":38,"value":279},{"type":28,"tag":263,"props":3360,"children":3361},{"style":282},[3362],{"type":38,"value":285},{"type":28,"tag":263,"props":3364,"children":3365},{"style":276},[3366],{"type":38,"value":1180},{"type":28,"tag":263,"props":3368,"children":3369},{"style":282},[3370],{"type":38,"value":285},{"type":28,"tag":263,"props":3372,"children":3373},{"style":276},[3374],{"type":38,"value":1189},{"type":28,"tag":263,"props":3376,"children":3377},{"style":282},[3378],{"type":38,"value":285},{"type":28,"tag":263,"props":3380,"children":3381},{"style":276},[3382],{"type":38,"value":1238},{"type":28,"tag":263,"props":3384,"children":3385},{"style":282},[3386],{"type":38,"value":285},{"type":28,"tag":263,"props":3388,"children":3389},{"style":276},[3390],{"type":38,"value":1247},{"type":28,"tag":263,"props":3392,"children":3393},{"style":282},[3394],{"type":38,"value":322},{"type":28,"tag":263,"props":3396,"children":3397},{"class":265,"line":397},[3398],{"type":28,"tag":263,"props":3399,"children":3400},{"emptyLinePlaceholder":12},[3401],{"type":38,"value":394},{"type":28,"tag":263,"props":3403,"children":3404},{"class":265,"line":422},[3405,3409,3413,3418],{"type":28,"tag":263,"props":3406,"children":3407},{"style":270},[3408],{"type":38,"value":403},{"type":28,"tag":263,"props":3410,"children":3411},{"style":270},[3412],{"type":38,"value":408},{"type":28,"tag":263,"props":3414,"children":3415},{"style":411},[3416],{"type":38,"value":3417}," TestFonctionnel",{"type":28,"tag":263,"props":3419,"children":3420},{"style":282},[3421],{"type":38,"value":419},{"type":28,"tag":263,"props":3423,"children":3424},{"class":265,"line":430},[3425],{"type":28,"tag":263,"props":3426,"children":3427},{"emptyLinePlaceholder":12},[3428],{"type":38,"value":394},{"type":28,"tag":263,"props":3430,"children":3431},{"class":265,"line":446},[3432,3436,3440,3444,3448,3452,3456,3460,3464,3468],{"type":28,"tag":263,"props":3433,"children":3434},{"style":270},[3435],{"type":38,"value":452},{"type":28,"tag":263,"props":3437,"children":3438},{"style":270},[3439],{"type":38,"value":335},{"type":28,"tag":263,"props":3441,"children":3442},{"style":270},[3443],{"type":38,"value":457},{"type":28,"tag":263,"props":3445,"children":3446},{"style":460},[3447],{"type":38,"value":1345},{"type":28,"tag":263,"props":3449,"children":3450},{"style":282},[3451],{"type":38,"value":545},{"type":28,"tag":263,"props":3453,"children":3454},{"style":270},[3455],{"type":38,"value":1354},{"type":28,"tag":263,"props":3457,"children":3458},{"style":282},[3459],{"type":38,"value":1359},{"type":28,"tag":263,"props":3461,"children":3462},{"style":1362},[3463],{"type":38,"value":1365},{"type":28,"tag":263,"props":3465,"children":3466},{"style":282},[3467],{"type":38,"value":1370},{"type":28,"tag":263,"props":3469,"children":3470},{"style":282},[3471],{"type":38,"value":419},{"type":28,"tag":263,"props":3473,"children":3474},{"class":265,"line":475},[3475],{"type":28,"tag":263,"props":3476,"children":3477},{"style":1380},[3478],{"type":38,"value":3479},"        // Configuration du WebDriver pour Chrome\n",{"type":28,"tag":263,"props":3481,"children":3482},{"class":265,"line":511},[3483,3487,3491,3495,3499,3503,3507,3511],{"type":28,"tag":263,"props":3484,"children":3485},{"style":276},[3486],{"type":38,"value":1391},{"type":28,"tag":263,"props":3488,"children":3489},{"style":282},[3490],{"type":38,"value":285},{"type":28,"tag":263,"props":3492,"children":3493},{"style":460},[3494],{"type":38,"value":1400},{"type":28,"tag":263,"props":3496,"children":3497},{"style":282},[3498],{"type":38,"value":545},{"type":28,"tag":263,"props":3500,"children":3501},{"style":600},[3502],{"type":38,"value":1409},{"type":28,"tag":263,"props":3504,"children":3505},{"style":282},[3506],{"type":38,"value":556},{"type":28,"tag":263,"props":3508,"children":3509},{"style":600},[3510],{"type":38,"value":1418},{"type":28,"tag":263,"props":3512,"children":3513},{"style":282},[3514],{"type":38,"value":566},{"type":28,"tag":263,"props":3516,"children":3517},{"class":265,"line":569},[3518,3522,3526,3530,3534,3538],{"type":28,"tag":263,"props":3519,"children":3520},{"style":479},[3521],{"type":38,"value":1430},{"type":28,"tag":263,"props":3523,"children":3524},{"style":276},[3525],{"type":38,"value":1435},{"type":28,"tag":263,"props":3527,"children":3528},{"style":490},[3529],{"type":38,"value":493},{"type":28,"tag":263,"props":3531,"children":3532},{"style":270},[3533],{"type":38,"value":498},{"type":28,"tag":263,"props":3535,"children":3536},{"style":460},[3537],{"type":38,"value":1448},{"type":28,"tag":263,"props":3539,"children":3540},{"style":282},[3541],{"type":38,"value":508},{"type":28,"tag":263,"props":3543,"children":3544},{"class":265,"line":610},[3545],{"type":28,"tag":263,"props":3546,"children":3547},{"emptyLinePlaceholder":12},[3548],{"type":38,"value":394},{"type":28,"tag":263,"props":3550,"children":3551},{"class":265,"line":619},[3552],{"type":28,"tag":263,"props":3553,"children":3554},{"style":1380},[3555],{"type":38,"value":3556},"        // Ouvrir la page d'accueil\n",{"type":28,"tag":263,"props":3558,"children":3559},{"class":265,"line":979},[3560,3564,3568,3572,3576,3581],{"type":28,"tag":263,"props":3561,"children":3562},{"style":276},[3563],{"type":38,"value":1475},{"type":28,"tag":263,"props":3565,"children":3566},{"style":282},[3567],{"type":38,"value":285},{"type":28,"tag":263,"props":3569,"children":3570},{"style":460},[3571],{"type":38,"value":1484},{"type":28,"tag":263,"props":3573,"children":3574},{"style":282},[3575],{"type":38,"value":545},{"type":28,"tag":263,"props":3577,"children":3578},{"style":600},[3579],{"type":38,"value":3580},"\"http://monapplication.com\"",{"type":28,"tag":263,"props":3582,"children":3583},{"style":282},[3584],{"type":38,"value":566},{"type":28,"tag":263,"props":3586,"children":3587},{"class":265,"line":1028},[3588],{"type":28,"tag":263,"props":3589,"children":3590},{"emptyLinePlaceholder":12},[3591],{"type":38,"value":394},{"type":28,"tag":263,"props":3593,"children":3594},{"class":265,"line":1071},[3595],{"type":28,"tag":263,"props":3596,"children":3597},{"style":1380},[3598],{"type":38,"value":3599},"        // Vérification du titre de la page\n",{"type":28,"tag":263,"props":3601,"children":3602},{"class":265,"line":1112},[3603,3607,3612,3616,3620,3624,3628],{"type":28,"tag":263,"props":3604,"children":3605},{"style":479},[3606],{"type":38,"value":1718},{"type":28,"tag":263,"props":3608,"children":3609},{"style":276},[3610],{"type":38,"value":3611}," titre ",{"type":28,"tag":263,"props":3613,"children":3614},{"style":490},[3615],{"type":38,"value":493},{"type":28,"tag":263,"props":3617,"children":3618},{"style":276},[3619],{"type":38,"value":1732},{"type":28,"tag":263,"props":3621,"children":3622},{"style":282},[3623],{"type":38,"value":285},{"type":28,"tag":263,"props":3625,"children":3626},{"style":460},[3627],{"type":38,"value":1741},{"type":28,"tag":263,"props":3629,"children":3630},{"style":282},[3631],{"type":38,"value":508},{"type":28,"tag":263,"props":3633,"children":3634},{"class":265,"line":1120},[3635,3639,3643,3648,3652,3656,3660,3665,3669],{"type":28,"tag":263,"props":3636,"children":3637},{"style":270},[3638],{"type":38,"value":1754},{"type":28,"tag":263,"props":3640,"children":3641},{"style":282},[3642],{"type":38,"value":545},{"type":28,"tag":263,"props":3644,"children":3645},{"style":276},[3646],{"type":38,"value":3647},"titre",{"type":28,"tag":263,"props":3649,"children":3650},{"style":282},[3651],{"type":38,"value":285},{"type":28,"tag":263,"props":3653,"children":3654},{"style":460},[3655],{"type":38,"value":1772},{"type":28,"tag":263,"props":3657,"children":3658},{"style":282},[3659],{"type":38,"value":545},{"type":28,"tag":263,"props":3661,"children":3662},{"style":600},[3663],{"type":38,"value":3664},"\"Accueil - Mon Application\"",{"type":28,"tag":263,"props":3666,"children":3667},{"style":282},[3668],{"type":38,"value":1786},{"type":28,"tag":263,"props":3670,"children":3671},{"style":282},[3672],{"type":38,"value":419},{"type":28,"tag":263,"props":3674,"children":3675},{"class":265,"line":1641},[3676,3680,3684,3688,3692,3696,3700,3705],{"type":28,"tag":263,"props":3677,"children":3678},{"style":276},[3679],{"type":38,"value":1799},{"type":28,"tag":263,"props":3681,"children":3682},{"style":282},[3683],{"type":38,"value":285},{"type":28,"tag":263,"props":3685,"children":3686},{"style":276},[3687],{"type":38,"value":1808},{"type":28,"tag":263,"props":3689,"children":3690},{"style":282},[3691],{"type":38,"value":285},{"type":28,"tag":263,"props":3693,"children":3694},{"style":460},[3695],{"type":38,"value":1817},{"type":28,"tag":263,"props":3697,"children":3698},{"style":282},[3699],{"type":38,"value":545},{"type":28,"tag":263,"props":3701,"children":3702},{"style":600},[3703],{"type":38,"value":3704},"\"Page d'accueil chargée correctement !\"",{"type":28,"tag":263,"props":3706,"children":3707},{"style":282},[3708],{"type":38,"value":566},{"type":28,"tag":263,"props":3710,"children":3711},{"class":265,"line":1695},[3712],{"type":28,"tag":263,"props":3713,"children":3714},{"style":282},[3715],{"type":38,"value":1894},{"type":28,"tag":263,"props":3717,"children":3718},{"class":265,"line":1703},[3719],{"type":28,"tag":263,"props":3720,"children":3721},{"emptyLinePlaceholder":12},[3722],{"type":38,"value":394},{"type":28,"tag":263,"props":3724,"children":3725},{"class":265,"line":1712},[3726],{"type":28,"tag":263,"props":3727,"children":3728},{"style":1380},[3729],{"type":38,"value":1911},{"type":28,"tag":263,"props":3731,"children":3732},{"class":265,"line":1748},[3733,3737,3741,3745],{"type":28,"tag":263,"props":3734,"children":3735},{"style":276},[3736],{"type":38,"value":1475},{"type":28,"tag":263,"props":3738,"children":3739},{"style":282},[3740],{"type":38,"value":285},{"type":28,"tag":263,"props":3742,"children":3743},{"style":460},[3744],{"type":38,"value":1928},{"type":28,"tag":263,"props":3746,"children":3747},{"style":282},[3748],{"type":38,"value":508},{"type":28,"tag":263,"props":3750,"children":3751},{"class":265,"line":1793},[3752],{"type":28,"tag":263,"props":3753,"children":3754},{"style":282},[3755],{"type":38,"value":616},{"type":28,"tag":263,"props":3757,"children":3758},{"class":265,"line":1833},[3759],{"type":28,"tag":263,"props":3760,"children":3761},{"style":282},[3762],{"type":38,"value":625},{"type":28,"tag":71,"props":3764,"children":3765},{},[],{"type":28,"tag":29,"props":3767,"children":3769},{"id":3768},"comment-choisir-le-bon-framework-pour-votre-projet",[3770],{"type":28,"tag":34,"props":3771,"children":3772},{},[3773],{"type":38,"value":3774},"Comment choisir le bon framework pour votre projet ?",{"type":28,"tag":41,"props":3776,"children":3777},{},[3778],{"type":38,"value":3779},"Le choix du framework dépend de plusieurs facteurs :",{"type":28,"tag":101,"props":3781,"children":3783},{"id":3782},"_1-type-de-projet-et-complexité",[3784,3785],{"type":38,"value":106},{"type":28,"tag":34,"props":3786,"children":3787},{},[3788],{"type":38,"value":3789},"Type de projet et complexité",{"type":28,"tag":3791,"props":3792,"children":3793},"ul",{},[3794,3816],{"type":28,"tag":3795,"props":3796,"children":3797},"li",{},[3798,3803,3805,3809,3810,3814],{"type":28,"tag":34,"props":3799,"children":3800},{},[3801],{"type":38,"value":3802},"Projets simples ou modérés",{"type":38,"value":3804}," : ",{"type":28,"tag":34,"props":3806,"children":3807},{},[3808],{"type":38,"value":234},{"type":38,"value":668},{"type":28,"tag":34,"props":3811,"children":3812},{},[3813],{"type":38,"value":241},{"type":38,"value":3815}," pour des tests unitaires.",{"type":28,"tag":3795,"props":3817,"children":3818},{},[3819,3824,3825,3829,3831,3835],{"type":28,"tag":34,"props":3820,"children":3821},{},[3822],{"type":38,"value":3823},"Projets complexes",{"type":38,"value":3804},{"type":28,"tag":34,"props":3826,"children":3827},{},[3828],{"type":38,"value":2656},{"type":38,"value":3830}," pour tester des interactions complexes, ",{"type":28,"tag":34,"props":3832,"children":3833},{},[3834],{"type":38,"value":666},{"type":38,"value":3836}," pour des tests d'intégration.",{"type":28,"tag":101,"props":3838,"children":3840},{"id":3839},"_2-nature-des-tests",[3841,3842],{"type":38,"value":136},{"type":28,"tag":34,"props":3843,"children":3844},{},[3845],{"type":38,"value":3846},"Nature des tests",{"type":28,"tag":3791,"props":3848,"children":3849},{},[3850,3869,3888],{"type":28,"tag":3795,"props":3851,"children":3852},{},[3853,3858,3859,3863,3864,3868],{"type":28,"tag":34,"props":3854,"children":3855},{},[3856],{"type":38,"value":3857},"Unitaires",{"type":38,"value":3804},{"type":28,"tag":34,"props":3860,"children":3861},{},[3862],{"type":38,"value":234},{"type":38,"value":668},{"type":28,"tag":34,"props":3865,"children":3866},{},[3867],{"type":38,"value":241},{"type":38,"value":285},{"type":28,"tag":3795,"props":3870,"children":3871},{},[3872,3877,3878,3882,3883,3887],{"type":28,"tag":34,"props":3873,"children":3874},{},[3875],{"type":38,"value":3876},"Intégration",{"type":38,"value":3804},{"type":28,"tag":34,"props":3879,"children":3880},{},[3881],{"type":38,"value":666},{"type":38,"value":668},{"type":28,"tag":34,"props":3884,"children":3885},{},[3886],{"type":38,"value":673},{"type":38,"value":285},{"type":28,"tag":3795,"props":3889,"children":3890},{},[3891,3896,3897,3901],{"type":28,"tag":34,"props":3892,"children":3893},{},[3894],{"type":38,"value":3895},"End-to-end",{"type":38,"value":3804},{"type":28,"tag":34,"props":3898,"children":3899},{},[3900],{"type":38,"value":1145},{"type":38,"value":3902}," pour automatiser les tests fonctionnels.",{"type":28,"tag":101,"props":3904,"children":3906},{"id":3905},"_3-facilité-dutilisation-et-dapprentissage",[3907,3908],{"type":38,"value":152},{"type":28,"tag":34,"props":3909,"children":3910},{},[3911],{"type":38,"value":3912},"Facilité d'utilisation et d'apprentissage",{"type":28,"tag":3791,"props":3914,"children":3915},{},[3916,3925,3934],{"type":28,"tag":3795,"props":3917,"children":3918},{},[3919,3923],{"type":28,"tag":34,"props":3920,"children":3921},{},[3922],{"type":38,"value":234},{"type":38,"value":3924}," pour la simplicité.",{"type":28,"tag":3795,"props":3926,"children":3927},{},[3928,3932],{"type":28,"tag":34,"props":3929,"children":3930},{},[3931],{"type":38,"value":241},{"type":38,"value":3933}," pour des besoins plus avancés.",{"type":28,"tag":3795,"props":3935,"children":3936},{},[3937,3941],{"type":28,"tag":34,"props":3938,"children":3939},{},[3940],{"type":38,"value":2656},{"type":38,"value":3942}," pour simuler des dépendances.",{"type":28,"tag":118,"props":3944,"children":3945},{},[3946],{"type":28,"tag":41,"props":3947,"children":3948},{},[3949,3953],{"type":28,"tag":34,"props":3950,"children":3951},{},[3952],{"type":38,"value":128},{"type":38,"value":3954}," : Choisissez un framework que vous et votre équipe êtes prêts à apprendre et à maintenir. Il vaut mieux maîtriser un framework simple que d'utiliser un outil avancé de manière incorrecte.",{"type":28,"tag":101,"props":3956,"children":3958},{"id":3957},"_4-compatibilité-avec-votre-environnement",[3959,3960],{"type":38,"value":3242},{"type":28,"tag":34,"props":3961,"children":3962},{},[3963],{"type":38,"value":3964},"Compatibilité avec votre environnement",{"type":28,"tag":3791,"props":3966,"children":3967},{},[3968,3984],{"type":28,"tag":3795,"props":3969,"children":3970},{},[3971,3976,3977,3982],{"type":28,"tag":34,"props":3972,"children":3973},{},[3974],{"type":38,"value":3975},"Maven",{"type":38,"value":668},{"type":28,"tag":34,"props":3978,"children":3979},{},[3980],{"type":38,"value":3981},"Gradle",{"type":38,"value":3983}," fonctionnent bien avec JUnit, TestNG et Mockito.",{"type":28,"tag":3795,"props":3985,"children":3986},{},[3987,3991],{"type":28,"tag":34,"props":3988,"children":3989},{},[3990],{"type":38,"value":1145},{"type":38,"value":3992}," pour des tests multiplateformes.",{"type":28,"tag":101,"props":3994,"children":3996},{"id":3995},"_5-écosystème-et-support-communautaire",[3997,3999],{"type":38,"value":3998},"5. ",{"type":28,"tag":34,"props":4000,"children":4001},{},[4002],{"type":38,"value":4003},"Écosystème et support communautaire",{"type":28,"tag":3791,"props":4005,"children":4006},{},[4007],{"type":28,"tag":3795,"props":4008,"children":4009},{},[4010,4014,4016,4020,4021,4025],{"type":28,"tag":34,"props":4011,"children":4012},{},[4013],{"type":38,"value":234},{"type":38,"value":4015}," bénéficie d'une large communauté, tout comme ",{"type":28,"tag":34,"props":4017,"children":4018},{},[4019],{"type":38,"value":2656},{"type":38,"value":236},{"type":28,"tag":34,"props":4022,"children":4023},{},[4024],{"type":38,"value":1145},{"type":38,"value":285},{"type":28,"tag":71,"props":4027,"children":4028},{},[],{"type":28,"tag":29,"props":4030,"children":4032},{"id":4031},"faq",[4033],{"type":28,"tag":34,"props":4034,"children":4035},{},[4036],{"type":38,"value":4037},"FAQ",{"type":28,"tag":4039,"props":4040,"children":4041},"details",{},[4042,4048],{"type":28,"tag":4043,"props":4044,"children":4045},"summary",{},[4046],{"type":38,"value":4047},"1. Pourquoi devrais-je utiliser un framework de tests plutôt que de tester manuellement ?",{"type":28,"tag":41,"props":4049,"children":4050},{},[4051],{"type":38,"value":4052},"Les tests manuels sont fastidieux et sujets à l’erreur humaine. Les frameworks automatisent les tests et garantissent la stabilité du code.",{"type":28,"tag":4039,"props":4054,"children":4055},{},[4056,4061],{"type":28,"tag":4043,"props":4057,"children":4058},{},[4059],{"type":38,"value":4060},"2. Quel framework est le plus simple à utiliser pour débuter ?",{"type":28,"tag":41,"props":4062,"children":4063},{},[4064,4068],{"type":28,"tag":34,"props":4065,"children":4066},{},[4067],{"type":38,"value":234},{"type":38,"value":4069}," est idéal pour débuter grâce à sa simplicité et sa large documentation.",{"type":28,"tag":4039,"props":4071,"children":4072},{},[4073,4078],{"type":28,"tag":4043,"props":4074,"children":4075},{},[4076],{"type":38,"value":4077},"3. Quelle est la différence entre JUnit et TestNG ?",{"type":28,"tag":41,"props":4079,"children":4080},{},[4081,4085,4087,4091],{"type":28,"tag":34,"props":4082,"children":4083},{},[4084],{"type":38,"value":234},{"type":38,"value":4086}," est plus basique, tandis que ",{"type":28,"tag":34,"props":4088,"children":4089},{},[4090],{"type":38,"value":241},{"type":38,"value":4092}," offre des fonctionnalités avancées comme les tests parallèles.",{"type":28,"tag":4039,"props":4094,"children":4095},{},[4096,4101],{"type":28,"tag":4043,"props":4097,"children":4098},{},[4099],{"type":38,"value":4100},"4. Quand devrais-je utiliser Mockito ?",{"type":28,"tag":41,"props":4102,"children":4103},{},[4104,4106,4110],{"type":38,"value":4105},"Utilisez ",{"type":28,"tag":34,"props":4107,"children":4108},{},[4109],{"type":38,"value":2656},{"type":38,"value":4111}," lorsque vous avez besoin de simuler des objets dans des tests unitaires.",{"type":28,"tag":4039,"props":4113,"children":4114},{},[4115,4120],{"type":28,"tag":4043,"props":4116,"children":4117},{},[4118],{"type":38,"value":4119},"5. Est-ce que Selenium est uniquement pour les tests d’applications web ?",{"type":28,"tag":41,"props":4121,"children":4122},{},[4123,4125,4129],{"type":38,"value":4124},"Oui, ",{"type":28,"tag":34,"props":4126,"children":4127},{},[4128],{"type":38,"value":1145},{"type":38,"value":4130}," est principalement conçu pour tester des applications web en automatisant les interactions avec le navigateur.",{"type":28,"tag":3225,"props":4132,"children":4137},{"cta":4133,"href":4134,"title":4135,"type":4136},"Télécharger le guide gratuit →","/mes-ressources","Ressource gratuite : De 6 semaines à 8 jours de lead time en 90 jours","resource",[4138],{"type":28,"tag":41,"props":4139,"children":4140},{},[4141],{"type":38,"value":4142},"Le framework 4 phases appliqué dans 12 équipes engineering. Une bonne couverture de tests est la fondation d'un lead time court — découvrez comment réduire le vôtre de 50%.",{"type":28,"tag":4144,"props":4145,"children":4146},"style",{},[4147],{"type":38,"value":4148},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":7,"searchDepth":325,"depth":325,"links":4150},[4151,4152,4153,4154,4155,4156],{"id":31,"depth":388,"text":39},{"id":76,"depth":388,"text":82},{"id":203,"depth":388,"text":209},{"id":1979,"depth":388,"text":1985},{"id":3768,"depth":388,"text":3774},{"id":4031,"depth":388,"text":4037},"markdown","content:fr:dette-technique:decouvrir-frameworks-tests-java.md","content","fr/dette-technique/decouvrir-frameworks-tests-java.md","fr/dette-technique/decouvrir-frameworks-tests-java","md",1775679805118]