background preloader

TDD

Facebook Twitter

Unit testing services, part 2 – Embedded Glassfish | nosoftskills.com. By Ivan St. Ivanov In this three part series I am going to show you how you can easily test classes that are managed by the various containers in the Java world. In the first part we developed a Spring managed service which we tested using the Spring test context framework. Today we are going to dig into the Java EE realm.

We will create a session EJB which we’ll test with the help of the Glassfish embedded container. Java EE 6 quick review Before going into the details of our sample scenario, let’s take a quick look at the environment that we are going to develop in. Versions 5 and especially 6 of the Java EE specification simplified very much developer’s life by bringing the best practices from other Java enterprise frameworks like Spring and Hibernate.

One of the newly introduced features of the specification is the so called embedded EJB container. Before we see the embedded container in action, let’s first Set the project up The persistence Implementing the session bean In Java E That’s it! Java - How to mock annotated EJBs. Testabilité des EJB 3.1. Prêt pour du TDD ? La testabilité est devenue un facteur à prendre en compte lors du choix d’un composant technique. Pour les EJB 3.0, il existait plusieurs manières de tester des services développés, Ejb3unit (figé depuis mi-2009) ou Arquillian (uniquement côté JBoss AS). Les EJB 3.1 offrent enfin une solution native, prête à l’emploi et simple à manipuler : l’EJB Container. Cet article présente l’utilité de l’EJB Container et la manière de l’utiliser ; il s’appuie pour cela sur l’écriture d’un service et d’une suite de tests exécutables sur Glassfish 3 et sur JBoss 6.

L’EJB Container en théorie Les EJB 3.1 sont spécifiés dans la JSR 318 dont la version finale a été validée en décembre 2009. Outre les spécifications liées au cœur même des EJB (Session Bean Stateless, Stateful, Message-Driven Bean, Timer Service, Transactions, etc) on trouve un chapitre dédié à un tout nouveau composant : l’EJB Container. Pour rappel, le sous-ensemble EJB Lite est composé : L’EJB Container en pratique Code source Annexe. TDD et productivité. Quand on est en phase de développement et que l’on pratique le TDD, il est nécessaire de connaître certaines méthodes pour éviter la répétition, une fatigue des doigts évidente et ainsi améliorer son rendement. Nous essayerons dans cet article de montrer l’ergonomie d’Eclipse et l’utilisation du clavier pour rendre plus courte et plus agréable une session TDD.

Nous présenterons quelques plugins Eclipse et aussi un outil souvent négligé que sont les templates de codes. Un pattern sera introduit pour faciliter l’utilisation des objet métiers et POJO dans les tests. Enfin, nous présenterons le concept important du Continuous Unit Testing appliqué à l’IDE et indiquerons et comparerons les plugins Eclipse pour le mettre en œuvre. TDD et Eclipse Raccourcis claviers utiles La programmation sur ordinateur est née avant l’outil qu’est la souris pour PC. Raccourcis à connaitre lorsque l’on démarre TDD (ou la programmation…) avec Eclipse. Key promoter Un peu d’ergonomie Eclipse Outline view Exemples:

TestNG

Maven and TestNG :: I Like Spam. Maven and TestNG I'm fairly new to maven, but so far it has really impressed me with its simplicity, productivity gains and IDE independence. So I was really looking forward to porting some unit tests to TestNG, running mvn test and watching in awe as maven found my tests, ran them and generated a pretty html report of the test results. Unfortunately, it didn't turn out quite like that. It would seem there are some unfortunate bugs in surefire (maven's test runner) and these extended my five minute job into six hours of bewilderment - with occasional profanities. The Problems Each of the Test* classes were found by surefire, but none of the tests in them were run. A Solution Fortunately, maven can run ant scripts and the testng jars include some ant tasks for executing testng 'natively'.

<build><plugins><plugin><artifactId>maven-antrun-plugin</artifactId><executions><! Of course you'll need to make your project dependent on TestNG also: References Hi Roger, Thanks for the informative post.

Output customization