As most programmers know, Unit testing is a good practice. You get a quick result if you broke something vital.
And in a simple POJO (Plain Old Java Object) it's not that difficult to make a Unit test, most IDE has JUnit integrated in them.
But what about JavaEE? Now you have a servlet-container, context and persistence to worry about.
There are several solutions for this, the one that I've been focusing on is Arquillian.
Arquillian is a JBoss Community project and development is sponsored by Red Hat, Inc.
http://arquillian.org/
It's a good idé to use Maven with Arquillian. One of the reasons is that you can have different profiles for different servers (glassfish, wildfly, embedded, remote, etc).
My opinions of Maven: http://java-viking.blogspot.com/2014/05/java-ee-maven-and-gradle.html
So Arquillian can simulate JARs or WARs. You can add config-files and classes (or packages).
It can even do persistence.
So i use my Datasource from the server, simulate a War and test it remotely to the server.
The test begins with making a transaction and adding values to the database, I do this with a Facade that Netbeans like to create for JPA Entities.
I've done a test with the findAll-method to see if I get a list with the correct size, and it worked lovely.
So now it's time to test all the important stuff. On my next project I will start with the testing-stuff first now that I know of its capabilities.
So what's next?
Next is to test Arquillian Drone. The Drone-extension is for testing the actual site. So my JSF-sites can actually have automated tests. The newest 2.0.0 (alpha) can even test for mobile.
The Drone can find elements by id and actually do stuff, like login in and testing what the response site is.
So my hours of re-deploying and testing the same thing over and over again feels like a bitter cup of tea right now.
So thats it for now, I have a lot of testing to do. I will also experiment with the managed and embedded server options. But it's always good to have a "remote" server that actually is the same as the release environment,
Comment if you need help with Netbeans, Wildfly and Arquillian, the IDE in the tutorials is Eclipse and uses EclipseLink instead of the Wildfly default (hibernate),
No comments:
Post a Comment