Écosystème Microsoft : .NET 6 / WinUI 3 / .NET MAUI

Historique Pour cet article je vais faire un mini REX sur l’écosystème de Microsoft pour les développeurs. J’ai commencé à travailler avec les technologies Microsoft vers 2016. Pour situer, Windows 10 devait avoir à peu près un an et Satya Nadella était à la tête de l’entreprise depuis 2 ans environ. Ces deux points sont, à mon sens, importants et ont […]

Changer la bannière de démarrage “Spring” dans votre projet Spring Boot

Introduction Vous l’avez sûrement remarqué, lorsque vous lancez votre application Spring Boot, vous avez une bannière de ce type qui s’affiche: Il peut être intéressant de la changer, ne serait-ce que pour voir plus facilement dans les logs quelle application démarre. On peut aussi vouloir afficher certaines informations utiles comme la version de l’application qui se lance. On va voir […]

Les Stream: map – filter – reduce par l’exemple

 Introduction Les fonctions map, filter, reduce sont des opérations très utiles sur les Streams qui permettent de transformer simplement leurs éléments. L’objectif de cet article est de vous montrer comment fonctionnent ces 3 opérations fondamentales. On ne rentrera pas dans les détails mais on utilisera des exemples concrets pour que vous puissiez comprendre leur principe et les appliquer dans des […]

Configurer Cucumber avec Spring Boot 3 et Junit 5 – Un exemple concret

Introduction Cucumber est un outil indispensable dans mon quotidien. En effet, il permet très facilement de créer des tests systèmes (cf. https://latavernedutesteur.fr/2017/11/03/les-niveaux-de-test/).  Le seul problème de Cucumber  (à mon sens) est qu’il n’est pas évident à configurer.  Après l’avoir mis en place sur plusieurs projets, je vous propose de prendre un raccourci et voir pas-à-pas comment l’installer simplement sur votre […]

Des tests unitaires paramétrés avec Junit Jupiter Params

Introduction Lorsqu’on écrit nos tests unitaires, on peut avoir l’impression que certains cas de tests sont quasiment identiques dans leur structure. Ils sont rébarbatifs à lire/écrire. C’est là que la notion de dataProvider est utile: on va réutiliser le même test mais avec des paramètres d’entrée différents 😉 Si on prend le cas du Kata Tennis (https://codingdojo.org/kata/Tennis/) , on a […]

Retour d’expérience : le TDD après un an d’utilisation au quotidien

Introduction Dans cet article, je vais vous livrer un avis très personnel sur ce que m’a apporté le TDD et les difficultés que j’ai pu rencontrer. Si vous ne savez pas ce qu’est le Test Driven Development, je vous conseille cette vidéo qui est très bien faite : https://www.youtube.com/watch?v=wMY5FE59rkI Comment j’en suis venu au TDD ? J’ai eu beaucoup de […]

Utiliser une base H2 avec SpringBoot

Introduction H2 est une base de données rapide et légère qui peut être persistée (dans un fichier) ou non. Je la trouve utile pour au moins 2 cas d’utilisation : – Lorsque je veux réaliser un PoC, ça me permet d’avoir une base de données configurée en 2 minutes. – Lorsque je veux faire des tests d’intégration qui communiquent avec […]

ASP .NET MVC – Html.BeginForm : L’attribut HTML « action » n’est pas généré pour l’élément « form »

ASP .NET Généré un formulaire avec le moteur de templating Razor pour qu’il ait bien le bon champ « action » et non un champ « action » vide

Le mutation testing par l’exemple

Introduction Dans cet article, on va voir avec un cas concret ce qu’est le mutation testing et comment ça peut vous être utile au quotidien 😀. Sans plus tarder, prenons l’exemple suivant: On demande à Bob de créer un programme pour déterminer si un animal est mignon avec les règles suivantes: Par défaut un animal n’est pas mignon ❌ Si […]

Permettre à PhpStorm de reconnaître les annotations Symfony

En basculant sur PhpStorm, j’ai été surpris de constater que les annotations n’étaient pas nativement prises en charge par l’IDE. En effet, PhpStorm ne va pas vous proposer d’ajouter automatiquement les imports nécessaires à vos annotations et va les considérer comme « inutiles ». Cela signifie que même si vous rajoutez les imports manuellement, ils seront supprimés automatiquement au moment de l’optimisation […]