Description
Avec la complexité sans cesse croissante des besoins d'affaires, la qualité du code est, plus que jamais, un facteur décisif de succès pour les projets en technologie de l'information. En mettant l'emphase sur cet aspect critique, ce cours a pour objectif l'apprentissage des bonnes pratiques entourant l'écriture de code et de tests unitaires, tout en approfondissant la notion de testabilité, sa raison d'être et ses bénéfices. Il y aura des exercices pratiques et exemples avec C# et Visual Studio 2017.
Ce cours est la suite de Programmation orientée-objets avec C# et Visual Studio 2017
Formateur(s) et formatrice(s)
array(19) {
["id"]=>
string(2) "26"
["titre"]=>
string(0) ""
["brioformateur_id"]=>
string(2) "45"
["description"]=>
string(316) "Vincent Goudreault cumule plusieurs années d’expérience en développement d’application .NET et Web, avec C# et F#. Il est détenteur d’un baccalauréat en informatique de l’Université Laval et est passionné par la qualité du code, les technologies .net et la programmation fonctionnelle avec F#.
"
["description_courte"]=>
string(199) "Vincent Goudreault cumule plusieurs années d’expérience en développement d’application .NET et Web, avec C# et F#. Il est détenteur d’un baccalauréat en informatique de l’Université ..."
["website_url"]=>
string(0) ""
["facebook_url"]=>
string(0) ""
["linkedin_url"]=>
string(47) "https://www.linkedin.com/in/vincentgoudreault1/"
["googleplus_url"]=>
string(0) ""
["twitter_url"]=>
string(0) ""
["active"]=>
string(1) "1"
["views"]=>
string(4) "1963"
["comments"]=>
string(1) "0"
["active_comments"]=>
string(1) "0"
["image_id"]=>
string(3) "506"
["created"]=>
string(19) "2019-03-12 17:38:19"
["updated"]=>
string(19) "2024-11-21 03:43:59"
["first_name"]=>
string(7) "Vincent"
["last_name"]=>
string(10) "Goudreault"
}
Objectifs
- Apprendre à produire du code de qualité
- Maîtriser les tests unitaires
- Comprendre les doublures de tests (mocks) et leur utilisation
Clientèle cible
Développeurs maîtrisant la programmation orientée-objets et désirant augmenter la qualité de leur code.
Contenu
La testabilité et introduction à Visuel Studio
- Framework .NET
- Interfaces
Les tests
- Vocabulaire
- Classification par niveau et type
- Introduction aux tests unitaires
La testabilité (suite)
- Observabilité, contrôlabilité et petitesse
- Pilotes de la testabilité
- Définition et caractéristiques
Tests unitaires
- Framework et cycle de vie
- Nomenclature et structure des tests
- Assertions
- Tester les exceptions
Doublures de test (mocks)
- Gestion des dépendances d’une classe
- Doublure de tests : mocks, stubs, espions, etc.
- Framework d’isolation
- NSubstitute
- Bonnes pratiques et pièges
Retour sur les principaux concepts et validation des acquis
- Récapitulatif et questionnaire
- Autres sujets selon les besoins (Ex: clean code)
*L'ordre des sujets abordés pourrait varier
Horaire et coûts
Ceux qui ont consulté cette fiche ont également consulté :
eyJyZWxhdGVkX2VsZW1lbnQiOiJicmlvZWxlbWVudCIsInJlbGF0ZWRfaWQiOiIxMzYiLCJ0aXRsZSI6IkhvbWUgU3RhZ2luZyAxIC0gUG91ciB2ZW5kcmUgcmFwaWRlbWVudCBkZXMgclx1MDBlOXNpZGVuY2VzIHN1ciBsZSBtYXJjaFx1MDBlOSBkZSBsJ2ltbW9iaWxpZXIiLCJkZXNjcmlwdGlvbiI6Ikluc2NyaXB0aW9ucyBldCBjb3VycyBlbiBsaWduZSEgTm90aW9ucyBzdXIgbGUgSG9tZSBTdGFnaW5nIDogbGEgZFx1MDBlOWZpbml0aW9uLCBsZXMgaW5mb3JtYXRpb25zIHJlbGF0aXZlcyBhdSBidWRnZXQgZXQgcGx1cyBlbmNvcmUuIEF1Y3VuIHByXHUwMGU5YWxhYmxlLiBBdHRlc3RhdGlvbiBTT0ZFRFVDLlxuIiwidXJsIjoiaHR0cHM6XC9cL2ZjLmNlZ2VwZ2FybmVhdS5jYVwvaG9tZS1zdGFnaW5nLTEiLCJ0eXBlIjoicHJvZHVjdCIsImltYWdlX3VybCI6Imh0dHBzOlwvXC9mYy5jZWdlcGdhcm5lYXUuY2FcL2NvdXJzXC9pbWFnZVwvNjVcL2FsemRiYzYyNS5icmlvaW1hZ2UucG5nIiwiaW1hZ2VfdHlwZSI6ImltYWdlXC9wbmciLCJpbWFnZV93aWR0aCI6IjE5MjAiLCJpbWFnZV9oZWlnaHQiOiIxMDgwIn0=
eyJyZWxhdGVkX2VsZW1lbnQiOiJicmlvZWxlbWVudCIsInJlbGF0ZWRfaWQiOiIxMDkiLCJ0aXRsZSI6IkxlcyBcdTAwYzl0YXRzIGZpbmFuY2llcnMgOiBsZXMgY29tcHJlbmRyZSBldCBsZXMgYW5hbHlzZXIiLCJkZXNjcmlwdGlvbiI6IkwnZXNzZW50aWVsIHBvdXIgY29tcHJlbmRyZSBldCBhbmFseXNlciBsZXMgXHUwMGU5dGF0cyBmaW5hbmNpZXJzLiAxMiBoZXVyZXMgZGUgY291cnMgZW4gbGlnbmUuIFRlbXBzIHBhcnRpZWwuIEF0dGVzdGF0aW9uIFNPRkVEVUMuIEluc2NyaXB0aW9ucyBlbiBsaWduZS4gXG4iLCJ1cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9sZXMtZXRhdHMtZmluYW5jaWVycy1sZXMtY29tcHJlbmRyZS1ldC1sZXMtYW5hbHlzZXIiLCJ0eXBlIjoicHJvZHVjdCIsImltYWdlX3VybCI6Imh0dHBzOlwvXC9mYy5jZWdlcGdhcm5lYXUuY2FcL2NvdXJzXC9pbWFnZVwvMjMzXC9hdmhod3Q0NzcuYnJpb2ltYWdlLnBuZyIsImltYWdlX3R5cGUiOiJpbWFnZVwvcG5nIiwiaW1hZ2Vfd2lkdGgiOiIxOTIwIiwiaW1hZ2VfaGVpZ2h0IjoiMTA4MCJ9
eyJyZWxhdGVkX2VsZW1lbnQiOiJicmlvZWxlbWVudCIsInJlbGF0ZWRfaWQiOiI4MyIsInRpdGxlIjoiUGhvdG9zaG9wIENDIC0gQ3JcdTAwZTlhdGlvbiBldCB0cmFpdGVtZW50IGQnaW1hZ2VzIiwiZGVzY3JpcHRpb24iOiJDb3VycyBldCBpbnNjcmlwdGlvbnMgZW4gbGlnbmUuIE91dmVydCBcdTAwZTAgdG91cyEgUGhvdG9zaG9wIENDIChkXHUwMGU5YnV0YW50KS4gQ3JcdTAwZTlhdGlvbiBldCB0cmFpdGVtZW50IGQnaW1hZ2VzLiBBdHRlc3RhdGlvbiBTT0ZFRFVDLiBDb25zdWx0ZXogbGEgZmljaGUgY29tcGxcdTAwZTh0ZSBkdSBjb3Vycy4gXG4iLCJ1cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC90cmFpdGVtZW50LWRpbWFnZXMtcGhvdG9zaG9wIiwidHlwZSI6InByb2R1Y3QiLCJpbWFnZV91cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9jb3Vyc1wvaW1hZ2VcLzEyNTc0XC9jaGZma3kxODAuYnJpb2ltYWdlLnBuZyIsImltYWdlX3R5cGUiOiJpbWFnZVwvcG5nIiwiaW1hZ2Vfd2lkdGgiOiIxOTIwIiwiaW1hZ2VfaGVpZ2h0IjoiMTA4MCJ9
eyJyZWxhdGVkX2VsZW1lbnQiOiJicmlvZWxlbWVudCIsInJlbGF0ZWRfaWQiOiI0MSIsInRpdGxlIjoiTGUgdHJhaXRlbWVudCBkZSBsYSBwYWllIiwiZGVzY3JpcHRpb24iOiJNYVx1MDBlZXRyaXNleiBsZSB0cmFpdGVtZW50IGRlIGxhIHBhaWUgZ3JcdTAwZTJjZSBcdTAwZTAgbm90cmUgY291cnMgZW4gbGlnbmUuIFRlbXBzIHBhcnRpZWwuIDM2IGhldXJlcyBkZSBjb3Vycy4gSWRcdTAwZTlhbCBwb3VyIGxlcyBwcm9mZXNzaW9ubmVscyBlbiBhZG1pbmlzdHJhdGlvbi4gXG4iLCJ1cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9sZS10cmFpdGVtZW50LWRlLWxhLXBhaWUiLCJ0eXBlIjoicHJvZHVjdCIsImltYWdlX3VybCI6Imh0dHBzOlwvXC9mYy5jZWdlcGdhcm5lYXUuY2FcL2NvdXJzXC9pbWFnZVwvMTI2ODFcL2FtYWhldDQzNC5icmlvaW1hZ2UucG5nIiwiaW1hZ2VfdHlwZSI6ImltYWdlXC9wbmciLCJpbWFnZV93aWR0aCI6IjE5MjAiLCJpbWFnZV9oZWlnaHQiOiIxMDgwIn0=
eyJyZWxhdGVkX2VsZW1lbnQiOiJicmlvZWxlbWVudCIsInJlbGF0ZWRfaWQiOiIxMjEiLCJ0aXRsZSI6IlJcdTAwZTlkYWN0aW9uIFdlYiIsImRlc2NyaXB0aW9uIjoiSW5zY3JpcHRpb25zIGV0IGNvdXJzICgxOCBoZXVyZXMpIGVuIGxpZ25lLiBOb3Rpb25zIGVzc2VudGllbGxlcyBwb3VyIG1hXHUwMGVldHJpc2VyIGxhIFJcdTAwZTlkYWN0aW9uIFdlYiAobW90ZXVycyBkZSByZWNoZXJjaGUsIHB1YmxpYyBjaWJsZSwgZXRjLikuIEF0dGVzdGF0aW9uIFNPRkVEVUMuXG4iLCJ1cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9hdGVsaWVyLWRlLXJlZGFjdGlvbi13ZWIiLCJ0eXBlIjoicHJvZHVjdCIsImltYWdlX3VybCI6Imh0dHBzOlwvXC9mYy5jZWdlcGdhcm5lYXUuY2FcL2NvdXJzXC9pbWFnZVwvMjIwMjNcL2FtYXFpcjczNy5icmlvaW1hZ2UucG5nIiwiaW1hZ2VfdHlwZSI6ImltYWdlXC9wbmciLCJpbWFnZV93aWR0aCI6IjE5MjAiLCJpbWFnZV9oZWlnaHQiOiIxMDgwIn0=
eyJyZWxhdGVkX2VsZW1lbnQiOiJjb3VycyIsInJlbGF0ZWRfaWQiOiIyMjEzMSIsInRpdGxlIjoiQ291cnRhZ2UgaW1tb2JpbGllciBjb21tZXJjaWFsIiwiZGVzY3JpcHRpb24iOiJEXHUwMGU5Y291dnJleiBsZXMgb2JqZWN0aWZzIGRlIG5vdHJlIEFFQy4gU3RyYXRcdTAwZTlnaWVzIGRlIGdlc3Rpb24gYWRhcHRcdTAwZTllcy4gSW5zY3JpcHRpb24gZXQgY291cnMgZW4gbGlnbmUuIENvbnN1bHRleiBsYSBmaWNoZSBkdSBwcm9ncmFtbWUgaWNpLiIsInVybCI6Imh0dHBzOlwvXC9mYy5jZWdlcGdhcm5lYXUuY2FcL2NvdXJ0YWdlLWltbW9iaWxpZXItY29tbWVyY2lhbC0yIiwidHlwZSI6InByb2R1Y3QiLCJpbWFnZV91cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9jb3Vyc1wvaW1hZ2VcLzIyMTMxXC9uYXN0dWgtYWJvb3RhbGViaS0yODQ4ODItdW5zcGxhc2guanBnIiwiaW1hZ2VfdHlwZSI6ImltYWdlXC9qcGVnIiwiaW1hZ2Vfd2lkdGgiOiIyMzAxIiwiaW1hZ2VfaGVpZ2h0IjoiMTUzNiJ9
eyJyZWxhdGVkX2VsZW1lbnQiOiJjb3VycyIsInJlbGF0ZWRfaWQiOiIyMjI3MCIsInRpdGxlIjoiUHJvZ3JhbW1hdGlvbiBvcmllbnRcdTAwZTllLW9iamV0cyBhdmVjIEMjIGV0IFZpc3VhbCBTdHVkaW8iLCJkZXNjcmlwdGlvbiI6IkRcdTAwZTljb3V2cmV6IGxhIGJhc2UgZW4gcHJvZ3JhbW1hdGlvbiBldCBsZSBsYW5nYWdlIEMjLiBJbnNjcmlwdGlvbnMgZXQgY291cnMgKDE4aCkgZW4gbGlnbmUuIEF0dGVzdGF0aW9uIFNPRkVEVUMuIENvbnN1bHRleiBsYSBmaWNoZSBjb21wbFx1MDBlOHRlIGR1IGNvdXJzLCBwclx1MDBlOWFsYWJsZXMsIGV0Yy4gXG4iLCJ1cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9wcm9ncmFtbWF0aW9uLW9yaWVudGVlLW9iamV0cy1hdmVjLWMtZXQtdmlzdWFsLXN0dWRpby0yMDE3IiwidHlwZSI6InByb2R1Y3QiLCJpbWFnZV91cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9pbWFnZXNcL2Zjc2FlX2RlZmF1bHRfb2dfaW1hZ2VfY291cnMuanBnIiwiaW1hZ2VfdHlwZSI6ImltYWdlXC9qcGVnIiwiaW1hZ2Vfd2lkdGgiOiI2MDAiLCJpbWFnZV9oZWlnaHQiOiIzMTUifQ==
eyJyZWxhdGVkX2VsZW1lbnQiOiJicmlvZWxlbWVudCIsInJlbGF0ZWRfaWQiOiIzMjkiLCJ0aXRsZSI6IlN0cmF0XHUwMGU5Z2llIG51bVx1MDBlOXJpcXVlOiByYXlvbm5lciBzdXIgbGUgV2ViIGV0IGxlcyByXHUwMGU5c2VhdXggc29jaWF1eCIsImRlc2NyaXB0aW9uIjoiIiwidXJsIjoiaHR0cHM6XC9cL2ZjLmNlZ2VwZ2FybmVhdS5jYVwvc3RyYXRlZ2llLW51bWVyaXF1ZS1yYXlvbm5lci1zdXItbGUtd2ViLWV0LWxlcy1yZXNlYXV4LXNvY2lhdXgiLCJ0eXBlIjoicHJvZHVjdCIsImltYWdlX3VybCI6Imh0dHBzOlwvXC9mYy5jZWdlcGdhcm5lYXUuY2FcL2NvdXJzXC9pbWFnZVwvMjI0NDdcL2ZvZ25iaTQ1My5icmlvaW1hZ2UucG5nIiwiaW1hZ2VfdHlwZSI6ImltYWdlXC9wbmciLCJpbWFnZV93aWR0aCI6Ijk2MCIsImltYWdlX2hlaWdodCI6IjY2NSJ9
eyJyZWxhdGVkX2VsZW1lbnQiOiJicmlvZWxlbWVudCIsInJlbGF0ZWRfaWQiOiIzNTkiLCJ0aXRsZSI6IkxhIGJvXHUwMGVldGUgXHUwMGUwIG91dGlscyBkJ3VuIGFjaGV0ZXVyIChwcm9jZXNzdXMgZCdhcHByb3Zpc2lvbm5lbWVudCkiLCJkZXNjcmlwdGlvbiI6IkxlIGNvdXJzXHUwMGEwTGEgYm9cdTAwZWV0ZSBcdTAwZTAgb3V0aWxzIGQndW4gYWNoZXRldXJcdTAwYTBwclx1MDBlOXNlbnRlIGV0IGV4cGxpcXVlIGwnZW5zZW1ibGUgZGVzIFx1MDBlOXRhcGVzIGR1IHByb2Nlc3N1cyBkJ2FwcHJvdmlzaW9ubmVtZW50IHF1ZSBsJ2FjaGV0ZXVyIGRvaXQgclx1MDBlOWFsaXNlciBkYW5zIHVuIHByb2pldCBkJ2FjcXVpc2l0aW9uIGRlIGJpZW5zIG91IGRlIHNlcnZpY2VzLlx1MDBhMCBMZXMgZGl4IFx1MDBlOXRhcGVzIHN1aXZhbnRlcyBzb250Li4uIiwidXJsIjoiaHR0cHM6XC9cL2ZjLmNlZ2VwZ2FybmVhdS5jYVwvbGEtYm9pdGUtYS1vdXRpbHMtZHVuLWFjaGV0ZXVyIiwidHlwZSI6InByb2R1Y3QiLCJpbWFnZV91cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9jb3Vyc1wvaW1hZ2VcLzIyNDU4XC9ndnJqdHkzNjIuYnJpb2ltYWdlLnBuZyIsImltYWdlX3R5cGUiOiJpbWFnZVwvcG5nIiwiaW1hZ2Vfd2lkdGgiOiIzMTciLCJpbWFnZV9oZWlnaHQiOiIyMDUifQ==
eyJyZWxhdGVkX2VsZW1lbnQiOiJicmlvZWxlbWVudCIsInJlbGF0ZWRfaWQiOiI0NzAiLCJ0aXRsZSI6IkxlYW4gTWFuYWdlbWVudCA6IG91YmxpZXogbGVzIGNlaW50dXJlcyAgISAgRGluZXItY29uZlx1MDBlOXJlbmNlIiwiZGVzY3JpcHRpb24iOiIiLCJ1cmwiOiJodHRwczpcL1wvZmMuY2VnZXBnYXJuZWF1LmNhXC9sZWFuLW1hbmFnZW1lbnQtb3VibGllei1sZXMtY2VpbnR1cmVzLSIsInR5cGUiOiJwcm9kdWN0IiwiaW1hZ2VfdXJsIjoiaHR0cHM6XC9cL2ZjLmNlZ2VwZ2FybmVhdS5jYVwvY291cnNcL2ltYWdlXC8yMjUyM1wvbnhxaWR1MzQ5XzEuYnJpb2ltYWdlLnBuZyIsImltYWdlX3R5cGUiOiJpbWFnZVwvcG5nIiwiaW1hZ2Vfd2lkdGgiOiIxOTIwIiwiaW1hZ2VfaGVpZ2h0IjoiMTA4MCJ9