JUnit 5

Introduction

Junit 4 a sorti sa première version en février 2006 et sa dernière (4.12) en Décembre 2014. Il était donc grand temps de sortir une nouvelle version pour s'adapter aux standards de JAVA 8 (Et JAVA 9 qui vient de sortir) et aux besoins des développeurs en matière de tests. Cette version tant attendue est donc enfin sortie le 10 septembre 2017 et je vais donc vous présenter les grands axes de cette version et les choses qui ont retenu mon attention.

Fluentlenium

Comment automatiser les tests d'IHM d'une application web ? En utilisant Selenium bien sûr ! Cependant, ce dernier n'est pas toujours simple à prendre en main. Pour faciliter son utilisation, il existe une bibliothèque java (française) : Fluentlenium. Seule contrainte, écrire ses tests en java. Celle-ci s'intègre simplement avec JUnit, TestNG, etc et permet d'utiliser AssertJ entre autre. L'exemple fournit par le site présenté dans ce post intègre JUnit et AssertJ. Il est possible d'utiliser d'autres bibliothèques pour ceux qui le souhaitent.

Utiliser les tests fonctionnels avec Behat dans tous vos projets web

A.                Installation de Java

 

Pour pouvoir utiliser Selenium qui nous permettra d’utiliser le navigateur voulu lors des tests, il faut préalablement avoir la versoir 7 de Java installé. Afin de connaître la version installée sur votre poste, lancez la commande suivante :

java --version

Si vous n’avez pas JRE 7 au minimum vous pouvez le télécharger à cette adresse :

http://www.oracle.com/technetwork/java/javase/downloads/java-se-jre-7-download-432155.html

Une fois installé, il faut ajouter la variable JAVA_HOME dans les variables d’environnement :

  • Clic droit sur ordinateur -> propriétés
  • Paramètres système avancés
  • Variables d’environnement
  • Dans les variables système choisissez « Nouvelle »
  • Entrer le nom JAVA_HOME
  • Entrer le chemin vers le fichier bin du dossier Java
  • Appliquer les changements

Tester Magento 1.x avec AspectMock

magento_logo

Magento 1.x est réputé pour être difficilement testable, principalement à cause de l'absence d'un véritable système d'injection de dépendances. Il est donc difficile de mettre en place les prérequis pour chaque test. Cette problématique était d'ailleurs la raison pour laquelle j'avais créé MageUnit. Depuis, je suis tombé sur un framework de mock très intéressant nommé AspectMock. Nous allons voir comment il rend testable quasiment n'importe quelle base de code et plus particulièrement du code Magento.

Java et les tests

mavenjenkinsjunitsonarqube

Imaginons une organisation qui se lance dans le développement Java et souhaite monter sa première plate-forme de développement Java. Que peut-on lui conseiller pour la partie tests ?

Lorsqu'on parle de test en Java un des premiers noms qui vient à l'esprit est JUnit. Puis on pense à l'intégration continue qui permet de tester la non régression au fil de l'eau, par exemple avec Maven (mais en fait Maven s'occupe surtout du build). Et enfin éventuellement à Sonar (qui s'appelle SonarQube depuis peu) pour la qualité logicielle, et à Test Director (maintenant HP Quality Center) pour la gestion de plans de tests. Et en poussant un petit peu on arrive à se souvenir qu'on pourrait faire de la gestion des exigences, par exemple avec DOORS. Ah oui, et aussi qu'il faut gérer les bugs, par exemple avec Mantis, Jira ou Bugzilla.

Architecture DDDD N-Layered (Distributed Domain Driven Design) et .NET

Régulièrement, l'équipe des architectes Microsoft met à jour un excellent document d'architecture pour les très gros projets. Cet article a pour but de présenter en synthèse cette architecture, particulièrement bien découpée.

Besoins en architecture

Il existe une grosse demande pour faire correspondre les patterns d’architectures avec les toutes dernières technologies Microsoft.
Il est nécessaire de bénéficier d’architectures d’entreprise préétablies pour avoir une démarche unifiée de construction des applications.

Les frameworks techniques

Les briques technologiques offertes par Microsoft (ou le monde du .NET) sont extrêmement nombreuses: Framework .NET, Silverlight, WPF, WCF, WF, ASP.NET MVC, Windows Identity Foundation, Entity Framework, Azure, SQL Server, Unity, …
Comment distribuer tous ces frameworks sur une architecture d’entreprise ?

Paramètres mémoire de la JVM pour le plugin maven-surefire-plugin

Chez Netapsys, nous mettons un point d'orgue à assurer la qualité de nos réalisations. Dans nos développements, les tests y sont pour beaucoup. Nous utilisons, pour les exécuter, le plugin Eclipse Junit. Et, dans le cadre de l'industrialisation de nos projets, ces tests sont lancés via Maven grâce au plugin maven-surefire-plugin.

Problème :
Récemment j'ai eu besoin de booster la mémoire de la JVM pour lancer un test assez gourmand en ressources. Et là, problème : alors que mon test passait sans problème sur Eclipse, il déclenchait à chaque fois une exception java.lang.OutOfMemoryError: Java heap space lorsqu'il était lancé via Maven, et ce malgré un paramétrage identique au niveau variables d'environnement.