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 […]

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 […]

Vulnérabilité Log4Shell

Qu’est-ce que Log4j et JNDI ? Log4j est un utilitaire de gestion des logs pour les applications développées en Java. Ce framework open-source est développé par l’Apache Software Foundation depuis 2001. Il permet de configurer précisément les fichiers de sortie, les niveaux et le format des logs.  JNDI (Java Naming and Directory Interface) est une API Java qui permet d’effectuer des […]

Comparer des Strings avec l’opérateur == vs .equals() en Java

Dans cet article nous allons aborder la différence entre l’opérateur « == » et la méthode .equals() qui permettent de comparer deux Strings.  I. Le constat Commençons par faire quelques tests pour essayer de voir en quoi ils diffèrent. Jusqu’ici tout va bien, les deux comparaisons renvoient « true ». Ici aussi les opérateurs amènent au même résultat, voyons un cas où ça se […]